Условный интерпретатор if
if выражение; then команды; [else команды ]; fi
if выражение; then команды; [else if выражение команды ]; [else команды ]; endif
if выражение; then команды; [elif выражение команды ]; [else команды ]; fi
Если выражение истинно, то выполняются команды первого уровня. Если же это не так, то либо выполняются команды второго уровня, стоящие после оператора else, либо вычисляется следующее выражение.
Оператор переключения
case строка in образец) команды;; *) команды;; esac
switch (строка) case образец: команды breaksw default: команды breaksw endsw
Оператор работает как переключатель между различными альтернативами, описываемыми образцами. Если ни один из образцов не соответствует указанной строке, выполняются команды, указанные в умолчании. В образцах могут использоваться метасимволы.
Оператор цикла while
while выражение; do команды; done
while выражение команды; end
Цикл, выполняющий команды, пока выражение является истинным.
Оператор цикла for
for переменная in список; do команды; done
foreach переменная (список) команды; end
|
|
Цикл, выполняющий команды, выбирая элементы из списка и присваивая переменной значение этого элемента.
Оператор цикла until
until выражение; do команды; done
Цикл, выполняющий команды, пока выражение является ложным.
Вычисление выражений
Код завершения любой программы в условных интерпретаторах истолковывается как истина, если он равен 0, в противном случае — ложь. Существуют команды true и false, единственная функция которых состоит в том, чтобы возвращать истину или ложь соответственно.
Оператор test или его аналог часто используется для выполнения различных проверок, связанных с файловой структурой.
Определение подпрограмм
[function] имя_функции () { операторы }
Параметры, передаваемые функции, передаются как позиционные параметры. Возврат из подпрограммы осуществляется по завершении набора операторов с результирующим кодом завершения или при помощи оператора return.