Запись конструкции if-else в одну строку в скриптах Bash

Запись конструкции if-else в одну строку в скриптах Bash

Рубрики:

Linux

Метки:

Bash, linux

Блоки кода с операторами if и else обычно занимают несколько строк в файле скрипта оболочки Linux. Однако во многих языках программирования существует возможность записывать конструкции if-else в одну строку.

В этой статье мы расскажем Вам, как использовать однострочные конструкции с операторами if и else в скриптах Bash.

Содержание:

  1. Синтаксис
  2. Пример базового использования однострочной конструкции if-else
  3. Сравнение значения переменной
  4. Проверка результата выполнения команд Linux
  5. Использование операторов && и ||
  6. Выводы

Синтаксис

В сценариях Bash синтаксис конструкции if-else, которая записана в одну строку, выглядит следующим образом:

 

Давайте разберем части этого кода:

  • if — начинает оператор if;
  • [ condition ] — условие в квадратных скобках, которое нужно проверить;
  • then command1 — выполняет command1, если условие истинно;
  • else command2 — выполняет command2, если условие ложно;
  • fi — завершает блок if-else.

Важно: составные части однострочной конструкции if-else разделяются точками с запятой (;).

Пример базового использования однострочной конструкции if-else

Допустим, нам нужно сравнить два числа5 и 3. Для этого запишем условие 5 -gt 3 (5 больше 3). Если условие:

  • истинно, значит выведем на экран сообщение 5 is greater than 3;
  • ложно — выведем на экран сообщение 5 is not greater than 3.

Читайте также: Использование операторов if, elif, else в скриптах Bash.

Код в нашем случае выглядит следующим образом:

 

Basic If-Else

На скриншоте выше показан результат выполнения скрипта. Число 5 действительно больше 3, поэтому наше условие истинно, и мы получили соответствующее сообщение.

Сравнение значения переменной

Давайте немного изменим предыдущий код. Создадим переменную num со значением 10. И запишем такое условие — $num -eq 11 (значение num равно 11). Если оно:

  • истинно — выводится сообщение The number is 10;
  • ложно — выводится сообщение The number is not 10.

Пример кода:

 

Using Variables

На скриншоте видно, что поставленное условие оказалось ложным (число 11 не равно 10), поэтому в терминале отобразилось сообщение The number is not 10.

Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.

Проверка результата выполнения команд Linux

Допустим, нам нужно узнать, существует ли каталог /home/user2 в файловой системе. Для решения этой задачи напишем следующий скрипт:

 

Давайте разберем принцип его работы:

  • ls /home/user2 — команда, которая пытается вывести на экран содержимое указанного каталога;
  • если каталог существует и команда ls выполнена успешно (условие истинно), отображается сообщение Directory exists;
  • если каталог не существует и команда ls не выполнена (условие ложно), выводится текст Directory does not exist.

Command Execution

Как показано на скриншоте выше, директории /home/user2 в файловой системе нет.

Использование операторов && и ||

В однострочной конструкции if-else Вы можете заменить оператор if на && (логическое «И»), а else — на || (логическое «ИЛИ»). Тогда синтаксис конструкции немного изменится:

 

Где:

  • && — означает, что если условие истинно, то выполняется command1;
  • || — означает, что если условие ложно, то выполняется command2.

Например:

 

Ternary-like Logic

Выводы

Мы показали базовые примеры использования однострочной конструкции if-else в сценариях Bash. Надеемся, что наша статья была полезной для Вас!

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux

Метки:

Bash, linux

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики