Оператор Bash 'if else': руководство и примеры

Использование оператора if… else в Bash для условного выполнения кода.

Bash (Bourne Again Shell) - это командная строка оболочки и язык сценариев в операционных системах GNU / Linux. Это оболочка по умолчанию для большинства дистрибутивов Linux.

Условные операторы жизненно важны для любого языка программирования, как скомпилированного, так и написанного по сценарию. Они позволяют пользователю выполнять фрагмент кода на основе заранее определенного условия, которое является одной из основ логики программирования. В этой статье мы узнаем, как использовать если еще условный оператор в Баш.

Введение

В если еще Оператор в Bash позволяет пользователю управлять потоком кода в зависимости от условий. Пользователь может указать отдельные блоки кода для выполнения, только один из которых будет, наконец, выполнен во время выполнения, на основе соответствующего условия, которое выполняется.

Обратите внимание, что можно указать более двух условий, для которых Элиф заявление можно использовать. Пользователь может указать любое количество условий, используя Элиф, и, наконец, условие по умолчанию с использованием еще блокировать. Давайте посмотрим на это подробнее в синтаксисе и примерах ниже.

Общий синтаксис

Общий синтаксис для если еще заявление в Bash:

если тогда  еще  фи

Здесь, если удовлетворяет, т.е. если он возвращает 0 (успех), то выполняется блок кода 1. Если условие не возвращает 0, т. Е. Возвращает состояние отказа, то выполняется блок кода 2. В если еще блок заканчивается фи утверждение.

Для нескольких блоков, соответствующих нескольким условиям,Элиф используется:

если тогда  Элиф тогда  Элиф тогда  ... ... еще  фи

Здесь условия проверяются по порядку, и выполняется блок кода первого условия, которое возвращает статус 0 (успех). Например. если возвращает ненулевой статус (сбой), тогда проверено. Если возвращает статус 0, выполняется. После этого дальнейшие условия не проверяются, и выполнение кода переходит к коду после фи утверждение.

Если ни одно из условий не возвращает статус 0, в блоке else выполняется. Обратите внимание, что блок else является необязательным. Если ни одно условие не выполнено, а также нет еще блок, условный блок кода не будет запущен, и выполнение кода продолжится до кода после фи заявление, как показано на блок-схеме ниже.

Обратите внимание, что тогда заявление следует использовать только после если и Элиф заявления и не требуется после еще утверждение.

Примеры

Чтобы выполнить блок кода если переменная имеет определенное значение:

x = 0 if [$ x -eq 0] then echo "Значение X равно 0" else echo "Значение X не равно 0" fi

Чтобы проверить наличие нескольких значений:

x = 2 if [$ x -eq 0] then echo "Value of X is 0" elif [$ x -eq 1] then echo "Value of X is 1" elif [$ x -eq 2] then echo "Value of X равно 2 "else echo" Значение X не равно 0 "fi

Условиями могут быть любые команды Linux. Соответствующий блок кода будет выполнен, если команда будет выполнена успешно.

если npm -v, то эхо «NPM присутствует в системе» иначе sudo apt install npm fi

В приведенном выше примере, поскольку npm не был установлен в системе, команда npm -v вернул ненулевой статус. Следовательно, выполнение кода перешло в еще блок, куда мы устанавливаем npm, используя подходящий менеджер пакетов. Как мы видим, мне было предложено ввести пароль и началась установка npm.

Мы также можем вложить еще один если еще блок внутри если, еще или Элиф блокировать:

x = 0 y = 1 если [$ x -eq 0], то эхо "X равно 0", если [$ y-экв 1], то эхо "Y равно 1", иначе эхо "Y равно 1", иначе эхо "X равно не 0 дюймов

Это полезно, когда необходимо проверить отдельный набор условий после выполнения начального условия.

Например, следующий код пытается установить программное обеспечение веб-сервера:

если nginx -v, то echo «NGINX уже установлен». иначе, если sudo apt install nginx, то эхо «установка NGINX прошла успешно». elif sudo apt install apache2, затем эхо «установка APACHE2 успешна». else echo «Невозможно установить какое-либо веб-программное обеспечение». фи

Код сначала проверяет, установлен ли уже Nginx в системе. Если это так, он просто отображает сообщение и закрывается. Если это не так, он пытается установить Nginx.

Если по какой-то причине Nginx не может быть установлен в систему из пакета, он пытается установить Apache2. Если даже Apache2 выдает ошибку при установке, он выходит с сообщением о том, что программное обеспечение не может быть установлено.

Подобным образом вложенный блок можно использовать внутри Элиф блок тоже.

Выполнение если еще: Скрипты и командная строка

Подобно любому коду Bash, если еще Оператор можно использовать в оболочке Bash напрямую или из исполняемого файла сценария оболочки. Как только интерпретатор Bash найдет если, еще или Элиф оператор, он продолжает оболочку, позволяя пользователю ввести блок кода.

Пользователь также может сохранить этот код в файле сценария и выполнить файл сценария.

В #! / bin / bash в начале указывает интерпретатор, который будет использоваться при выполнении файла. Хотя Bash является наиболее часто используемой оболочкой в ​​настоящее время, некоторые пользователи предпочитают такие оболочки, как zsh, которые следует указывать вместо bash в начале этого файла.

Чтобы предоставить разрешения на выполнение для этого файла, запустите:

chmod + x test.sh

Наконец, чтобы запустить файл, запустите:

./test.sh

Вывод

Как и любой язык программирования, если еще заявление является фундаментальной особенностью Bash. Изучение его использования имеет большое значение для написания как базовых, так и сложных сценариев.

Категория: Linux