Искусство программирования на языке сценариев командной оболочки




Программирование на языке сценариев командной оболочки - стр. 46


exit $NOARGS # Код возврата 65 (код ошибки). fi

filename=$1

if [ ! -f "$filename" ] # Кавычки необходимы на тот случай, если имя файла содержит пробелы. then echo "Файл $filename не найден!" >&2 # Сообщение об ошибке на stderr. exit $NOTFOUND fi

if [ ${filename##*.} != "gz" ] # Квадратные скобки нужны для выполнения подстановки значения переменной then echo "Файл $1 не является gz-файлом!" exit $NOTGZIP fi

zcat $1 | most

# Используется утилита 'most' (очень похожа на 'less'). # Последние версии 'most' могут просматривать сжатые файлы. # Можно вставить 'more' или 'less', если пожелаете.

exit $? # Сценарий возвращает код возврата, полученный по конвейеру. # На самом деле команда "exit $?" не является обязательной, # так как работа скрипта завершится здесь в любом случае,

построение сложных условий проверки

-a

логическое И (and)

exp1 -a exp2

возвращает true, если оба выражения, и exp1, и exp2 истинны.

-o

логическое ИЛИ (or)

exp1 -o exp2

возвращает true, если хотябы одно из выражений, exp1 или exp2 истинно.

Они похожи на операторы Bash && и ||, употребляемые в двойных квадратных скобках.

[[ condition1 && condition2 ]]

Операторы -o и -a употребляются совместно с командой test или внутри одинарных квадратных скобок.

if [ "$exp1" -a "$exp2" ]

Чтобы увидеть эти операторы в действии, смотрите Пример 8-3 и Пример 25-11.

7.4. Вложенные условные операторы if/then

Операторы проверки условий if/then могут быть вложенными друг в друга. Конечный результат будет таким же как если бы результаты всех проверок были объединены оператором &&.

if [ condition1 ] then if [ condition2 ] then do-something # Только если оба условия "condition1" и "condition2" истинны. fi fi

См. Пример 34-4 -- пример использования вложенных операторов if/then.

7.5. Проверка степени усвоения материала

Для запуска X-сервера может быть использован файл xinitrc.


Содержание  Назад  Вперед