Unix Man (Справочное руководство)


CRYPT(3X) - часть 4


&& | ^ & == != =~ !~ <= >= < >

<< >> + - * / % ! ~ ( )

Укажем группы операций, имеющих одинаковый приоритет:

== != =~ !~ <= >= < >

<< >>

+ * / %

Операции ==, !=, =~ и !~ сравнивают свои аргументы как цепочки символов; все остальные оперируют с числами. Операции =~ и !~ похожи на != и ==, но правый операнд в них является шаблоном (содержащим, например *, ?, [...]) с которым сопоставляется левый операнд. Это уменьшает необходимость в использовании оператора switch в командных файлах, когда на самом деле требуется сопоставление с шаблоном.

Цепочки, начинающиеся с 0, рассматриваются, как восьмеричные числа. Пустые и пропущенные аргументы рассматриваются, как 0. Результатами выражений являются цепочки символов, представляющие десятичные числа. Важно отметить, что никакие два компонента выражения не могут появиться в одном слове; во всех случаях, кроме тех, когда они граничат с символами &, |, , (, ) они должны быть окружены пробелами.

Операндами в выражениях могут выступать также результаты завершения команд, взятых в скобки { и }, а также запросы информации о файлах в виде -отношение файл, где отношение может быть следующим:

r Файл доступен на чтение.
w Файл доступен на запись.
x Файл доступен на выполнение.
e Файл существует.
o Пользователь является владельцем файла.
z Файл имеет нулевой размер.
f Файл является обычным.
d Файл является каталогом.

К указанному имени применяется подстановка результатов выполнения команд и генерация имен файлов, затем проверяется, верно ли указанное отношение для реального пользователя. Если файл не существует или недоступен, все запросы возвращают ложь (0). Результатом завершения команды будет истина (1), если команда завершилась с кодом 0, иначе возвращается ложь. Если требуется более детальная информация о завершении, команду следует выполнять вне выражения и проверять код завершения.

Передачи управления


Csh содержит набор команд, которые могут быть использованы для передач управления внутри командных файлов, их можно с успехом использовать и при вводе с терминала, правда при этом возникают некоторые ограничения. Команды передачи управления требуют от csh повторного чтения или пропуска файла ввода поэтому, из соображений реализации, имеются некоторые ограничения на расположение ряда подобных команд.

Команды foreach, switch и while, а также форма if-then-else команды if требуют, чтобы главное слово находилось на отдельной строке, как показано ниже.

Если ввод csh не является адресуемым, csh при появлении цикла буферизует ввод и для реализации цикла адресуется к этому внутреннему буферу. (Пока позволяет размер внутреннего буфера, можно выполнять передачи управления назад и в неадресуемом вводе.)

Встроенные команды





Начало  Назад  Вперед



Книжный магазин