Программирование в стандарте POSIX


Управляющие конструкции - часть 3


!Унарная операция отрицания
-aЛогическое И.
-oЛогическое ИЛИ.

Обратим внимание на то, что квадратные скобки, обрамляющие условие, и каждый компонент условия должны быть выделены пробелами.

Приведем пример использования управляющей конструкции if. В процессе загрузки практически любой разновидности ОС Unix выполняются строки следующего или близкого вида (см. листинг 2.19):

if [ -s ${f} ] then /bin/sh ${f} start fi

Листинг 2.19. Пример условного оператора.

Если файл, имя которого является значением переменной f, существует и имеет ненулевой размер, он выполняется с аргументом start.

В качестве примера употребления конструкции case приведем еще один фрагмент, типичный для процесса загрузки системы (см. листинг 2.20):

case "$1" in start) start ;; stop) stop ;; reload | restart) restart ;; condrestart) if [ -f /var/lock/subsys/atd ] then restart fi ;; *) echo $"Usage: $0 {start | stop | restart | condrestart}" exit 1 esac

Листинг 2.20. Пример оператора выбора.

Известные значения первого аргумента распознаются, в ответ на все прочие (шаблон *) сообщается, как пользоваться данной shell-процедурой.

Следующий пример иллюстрирует определение и вызов функции (см. листинг 2.21).

echo $# $1 f ( ) { echo $# $1 } f a b f b echo $# $1

Листинг 2.21. Пример определения и вызова функции.

Если данный текст хранится в файле g, то по окончании выполнения команды (вызов shell-процедуры, содержащей функцию)

g c d e

будет выдан следующий результат:

3 c 2 a 1 b 3 c




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