Практически любая программа требует выполнения различных наборов команд в зависимости от условий. Интерпретатор Bash оснащен специальным оператором if/then. Он способен принимать выражение и преобразовывать его результат в логическое значение «правда» или «ложь». Если результатом проверки является «правда», оператор if осуществляет выполнение содержащихся в нем команд.
В других высокоуровневых языках программирования истинному утверждению соответствует число «1», а ложному «0». Bash ведет себя иначе. При проверке входящего значения или выражения истинности соответствует число «0» а ложности «1». Это связанно с тем, что результат выражения на самом деле не преобразуется к логическому типу, он является кодом возврата программы. В Linux за успешный код завершения программы принято считать число ноль, а за ошибочный соответственно единицу.
В общем виде конструкцию применения условного оператора можно представить следующим образом «if проверяемоевыражение; then наборкоманд fi». Конструкция начинается с ключевого слова if, за которым следует выражение, требующее проверки. После проверки должно располагаться ключевое слово then, свидетельствующее о начале блока команд. Если проверка входящих параметров располагается на одной строчке с then, после неё необходимо добавить точку с запятой «;». Конец блока команд должен быть завершен ключевым словом fi.
Внутри выражения условного оператора if могут обрабатываться одно или несколько значений. Например, проверка существования файла требует указания одного значения - имени файла. При этом оператор проверки записывается вначале. В случае сравнения двух параметров операторы проверок записываются между ними. Ниже мы приводим список допустимых сравнений, а их использование разбирается в примере.
Альтернативное условие Else
При использовании условного оператора if/then можно задать блок команд, который будет выполнен в случае ложности выражения. Bash позволяет сделать это за счет ключевого слова else. Поместите его в промежутке then и fi. Все команды, лежащие между else и fi, будут считаться альтернативой истинности условия.