<Предыдущая | Содержание: | Следующая>
Операторы управления: еще один способ разветвления
bash предоставляет два управляющих оператора, которые могут выполнять ветвление. && (И) и || Операторы (ИЛИ) работают так же, как логические операторы в составной команде [[]]. Это синтаксис:
command1 && command2
и
command1 || command2
Важно понимать их поведение. С && оператор, command1 выполняется и command2 выполняется, если, и только если, command1 успешно. С || оператор, command1 выполняется и command2 выполняется, если, и только если, command1 неудачно.
На практике это означает, что мы можем сделать что-то вроде этого:
[я @ linuxbox ~] $ mkdir temp && cd temp
[я @ linuxbox ~] $ mkdir temp && cd temp
Это создаст каталог с именем температура, и в случае успеха текущий рабочий каталог будет изменен на температура. Вторая команда выполняется, только если MkDir команда выполнена успешно. Аналогично, такая команда:
[я @ linuxbox ~] $ [[-d temp]] || mkdir temp
[я @ linuxbox ~] $ [[-d temp]] || mkdir temp
проверит наличие каталога температура, и только если тест не пройден, каталог будет создан. Этот тип конструкции очень удобен для обработки ошибок в сценариях, о чем мы поговорим подробнее в следующих главах. Например, мы могли бы сделать это в скрипте:
[-d temp] || выход 1
[-d temp] || выход 1
Если скрипту требуется каталог температура, и он не существует, то скрипт завершится со статусом выхода, равным единице.