Операторы case в Bash обычно используются для упрощения сложных условий, когда у вас есть несколько вариантов. Использование оператора case вместо вложенного оператора if поможет вам сделать ваши bash-сценарии более удобочитаемыми и более простыми в обслуживании.
Оператор case в Bash имеет схожую концепцию с оператором переключения Javascript или C. Основное отличие состоит в том, что, в отличие от оператора C switch, оператор case не продолжает поиск соответствия шаблону после того, как он нашел один и выполнил операторы, связанные с этим шаблоном.
В этой статье мы рассмотрим основы инструкций случая Bash и покажем, как их использовать в сценариях оболочки.
Оператор case имеет следующую форму:
case EXPRESSION in PATTERN_1) STATEMENTS ;; PATTERN_2) STATEMENTS ;; PATTERN_N) STATEMENTS ;; *) STATEMENTS ;; esac
Вот пример использования оператора case в bash-скрипте, который будет печатать официальный язык данной страны:
#!/bin/bash echo -n "Введите название страны: " read COUNTRY echo -n "Официальный язык $COUNTRY это " case $COUNTRY in Russia) echo -n "Russia" ;; Brazil) echo -n "Brazil" ;; Italy | "San Marino" | Switzerland | "Vatican City") echo -n "Italian" ;; *) echo -n "неизвестный" ;; esac
Сохраните пользовательский скрипт в виде файла и запустите его из командной строки.
bash languages.sh
Скрипт попросит вас ввести страну. Например, если вы введете «Russia», она будет соответствовать первому шаблону, и команда echo в этом предложении будет выполнена.
Скрипт выведет следующий вывод:
Введите название страны: Russia Официальный язык Russia это Russian
Если вы вводите страну, которая не соответствует ни одному другому шаблону, кроме подстановочного символа по умолчанию, скажем, Ukraine, скрипт выполнит команду echo внутри предложения по умолчанию.
Введите название страны: Ukraine Официальный язык Ukraine is неизвестный
К настоящему времени вы должны хорошо понимать, как писать оператор case. Он часто используются для передачи параметров в сценарий оболочки из командной строки. Например, сценарии инициализации используют операторы case для запуска, остановки или перезапуска служб.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
официальный язык Бразилии — португальский.