#Linux- Условный оператор If/Then в Bash. Ветвление логики скрипта

Он способен принимать выражение и преобразовывать его результат в логическое значение «правда» или «ложь».

2018.09.10            


1.jpeg Практически любая программа требует выполнения различных наборов команд в зависимости от условий. Интерпретатор Bash оснащен специальным оператором if/then. Он способен принимать выражение и преобразовывать его результат в логическое значение «правда» или «ложь». Если результатом проверки является «правда», оператор if осуществляет выполнение содержащихся в нем команд.

В других высокоуровневых языках программирования истинному утверждению соответствует число «1», а ложному «0». Bash ведет себя иначе. При проверке входящего значения или выражения истинности соответствует число «0» а ложности «1». Это связанно с тем, что результат выражения на самом деле не преобразуется к логическому типу, он является кодом возврата программы. В Linux за успешный код завершения программы принято считать число ноль, а за ошибочный соответственно единицу.

В общем виде конструкцию применения условного оператора можно представить следующим образом «if проверяемоевыражение; then наборкоманд fi». Конструкция начинается с ключевого слова if, за которым следует выражение, требующее проверки. После проверки должно располагаться ключевое слово then, свидетельствующее о начале блока команд. Если проверка входящих параметров располагается на одной строчке с then, после неё необходимо добавить точку с запятой «;». Конец блока команд должен быть завершен ключевым словом fi.

2.jpeg 3.jpeg

Внутри выражения условного оператора if могут обрабатываться одно или несколько значений. Например, проверка существования файла требует указания одного значения - имени файла. При этом оператор проверки записывается вначале. В случае сравнения двух параметров операторы проверок записываются между ними. Ниже мы приводим список допустимых сравнений, а их использование разбирается в примере.

4.jpeg 5.jpeg 6.jpeg

Альтернативное условие Else

При использовании условного оператора if/then можно задать блок команд, который будет выполнен в случае ложности выражения. Bash позволяет сделать это за счет ключевого слова else. Поместите его в промежутке then и fi. Все команды, лежащие между else и fi, будут считаться альтернативой истинности условия.

7.jpeg