Условный оператор if
Используем имена переменных, представляющие значения параметров процедуры:
sort +1 -2 $1 | tr ... | lpr
Пример неверного вызова:
makelist (без параметров) , где $1 неопределен.
Исправить ошибку можно, проверяя количество аргументов - значение переменной $# посредством if - оператора.
Пример: (измененной процедуры makelist):
if test $# -eq 0 then echo "You must give a filename" exit 1 else sort +1 -2 $1 | tr ... | lpr fi
Здесь test и exit - команды проверки (см. раздел 7.11) и выхода.
Таким образом, синтаксис оператора if:
if <если эта команда выполняется успешно, то>; then <выполнить все следующие команды до else или, если его нет, до fi>; [else <иначе выполнить следующие команды до fi>]
Ключевые слова if, then, else и fi пишутся с начала строки. Успешное выполнение процедуры означает, что она возвращает значение true = 0 (zero) (неуспех - возвращаемое значение не равно 0).
Оператор exit 1 задает возвращаемое значение 1 для неудачного выполнения makelist и завершает процедуру.
Возможны вложенные if. Для else if есть сокращение elif, которое одновременно сокращает fi.