Условные операторы if, elif и else — специальные управляющие конструкции, которые позволяют выполнять различные блоки кода на основе заданных условий. Механизмы ветвления, основанные на применении этих операторов, реализованы во многих языках программирования.
В этой статье мы покажем примеры использования операторов if, elif и else в скриптах Bash в ОС Linux.
Содержание:
- Использование оператора if в скриптах
- Использование конструкции if-else в скриптах
- Применение конструкции if-elif-else в скриптах
- Использование вложенного оператора if в скриптах
- Использование нескольких условий в одной строке в скриптах
- Выводы
Использование оператора if
Базовый синтаксис оператора if в Bash выглядит следующим образом:
Где:
if
— ключевое слово, которое начинает оператор if;[ condition ]
— условие в квадратных скобках, при котором должен выполняться последующий блок кода;then
— ключевое слово, обозначающее конец условия и начало блока кода;fi
— ключевое слово, закрывающее оператор if.
Для примера напишем следующий скрипт Bash с оператором if:
Этот скрипт определяет, больше ли указанное число, чем 10. Если условие истинно, сценарий выводит на экран сообщение The number is greater than 10
.
Чтобы запустить скрипт, выполним в терминале одну из следующих команд:
Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.
На скриншоте выше видно, что мы ввели число 15, в результате чего скрипт выдал соответствующее сообщение. В то же время, при вводе числа 4, сценарий Bash вовсе не отобразил вывод в терминале. Это случилось из-за того, что мы не предусмотрели обработку данного условия.
Использование конструкции if-else
Оператор else применяется в связке с if для определения блока кода, который будет выполнен в случае, если условие, заданное в if, не соблюдается. Тогда синтаксис конструкции if-else будет иметь следующий вид:
Давайте немного модифицируем предыдущий скрипт. Допустим, нам нужно, чтобы сценарий при вводе числа, которое меньше 10, выводил на экран определенное сообщение:
Теперь запустим наш скрипт:
Как видно на скриншоте, скрипт выводит сообщение The number is not greater than 10.
, когда число меньше 10.
Применение конструкции if-elif-else
Оператор elif (сокр. от else if) позволяет последовательно проверять несколько условий после if. Если условие в операторе if ложно, программа переходит к первому оператору elif и продолжает проверку последующих условий поочередно, пока не встретит истинное условие или не достигнет блока else, если он предусмотрен.
Синтаксис конструкции if-elif-else выглядит следующим образом:
Читайте также: Как использовать цикл for в Linux.
Для примера добавим в наш скрипт дополнительное условие, при котором сценарий выводит на экран сообщение, если число равно 10:
Запустим данный сценарий Bash:
Использование вложенного оператора if
Вложенные операторы if позволяют создавать более сложные структуры принятия решений в программе. В такой конструкции условие внутреннего if проверяется только в случае, если условие внешнего является истинным.
Синтаксис конструкции вложенных операторов if имеет следующий вид:
Давайте создадим сценарий, который определит, является ли введенное число положительным, отрицательным или равным нулю. Если число положительное, скрипт также проверит, является ли оно четным или нечетным:
Читайте также: Написание скриптов в AWK.
Проверим работоспособность нашего скрипта:
Использование нескольких условий в одной строке
Использование множества условий в одном if часто необходимо для обработки сложных сценариев принятия решений на основе нескольких факторов. Для связки условий обычно применяются логические операторы &&
(«И»), ||
(«ИЛИ») и !
(«НЕ»).
Синтаксис такой конструкции может выглядеть одним из следующих образов:
Или:
Или:
Или:
Давайте напишем скрипт, который будет определять, находится ли число в интервале от 0 до 100 (не включительно). Также проверим, равно ли число 0 или 100. И выведем сообщение на экран, если число не находится в указанном диапазоне:
Читайте также: Установка и использование утилиты ShellCheck в Linux.
Посмотрим, как работает наш сценарий:
Выводы
Мы показали Вам базовые примеры использования условных операторов if, elif и else в сценариях Bash. Детально изучив показанные скрипты, Вы сможете получить четкое представление о том, как реализовать условную логику.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.