<Попередній | зміст | Наступна>
Контрольні оператори: інший спосіб розгалуження
bash надає два оператори керування, які можуть виконувати розгалуження. && (І) та || Оператори (АБО) працюють як логічні оператори в складеній команді [[ ]]. Ось синтаксис:
команда1 && команда2
та
команда1 || команда2
Важливо розуміти їх поведінку. З && оператор, команда1 виконується і команда2 виконується, якщо, і тільки якщо, команда1 є успішним. З || оператор, команда1 виконується і команда2 виконується, якщо, і тільки якщо, команда1 невдалий.
З практичної точки зору це означає, що ми можемо зробити щось подібне:
[me@linuxbox ~]$ mkdir temp && cd temp
[me@linuxbox ~]$ mkdir temp && cd temp
Це створить каталог з іменем температура, і якщо це вдасться, поточний робочий каталог буде змінено на температура. Друга команда виконується лише за умови mkdir команда успішно виконана. Аналогічно, така команда:
[me@linuxbox ~]$ [[ -d temp ]] || mkdir темп
[me@linuxbox ~]$ [[ -d temp ]] || mkdir темп
перевірить наявність каталогу температура, і лише в разі невдачі тесту буде створено каталог. Цей тип конструкції дуже зручний для обробки помилок у скриптах, тему, яку ми докладніше обговоримо в наступних розділах. Наприклад, ми можемо зробити це за допомогою сценарію:
[ -d temp ] || вихід 1
[ -d temp ] || вихід 1
Якщо для сценарію потрібен каталог температура, і він не існує, то сценарій завершиться зі статусом виходу один.