Introduction to Bash Scripting 13 - The Case Statement
Оглавление:
Операторы Bash case обычно используются для упрощения сложных условий, когда у вас есть несколько различных вариантов. Использование оператора case вместо вложенного оператора if поможет вам сделать ваши bash-сценарии более удобочитаемыми и более простыми в обслуживании.
Оператор Bash case имеет аналогичную концепцию с оператором переключения Javascript или C. Основное отличие состоит в том, что, в отличие от оператора C switch, оператор Bash case не продолжает поиск соответствия шаблону после того, как он нашел один и выполнил операторы, связанные с этим шаблоном.
В этом уроке мы рассмотрим основы инструкций случая Bash и покажем, как их использовать в сценариях оболочки.
Синтаксис описания случая
Оператор Bash case имеет следующую форму:
case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac
- Каждый оператор case начинается с ключевого слова
caseза которым следуют выражение case и ключевое словоin. Оператор заканчиваетсяesacсловомesacВы можете использовать несколько шаблонов, разделенных знаком|оператор. Оператор)завершает список шаблонов. Шаблон может содержать специальные символы. Шаблон и связанные с ним команды называются clause. Каждое предложение должно заканчиваться символом;;.Команды, соответствующие первому шаблону, который соответствует выражению, выполняются. Обычной практикой является использование подстановочного знака звездочки (*) в качестве окончательного шаблона для определения случая по умолчанию. Этот шаблон всегда будет соответствовать. Если шаблон не найден, возвращаемый статус равен нулю. В противном случае возвращаемый статус - это статус завершения выполненных команд.
Пример описания случая
Вот пример использования оператора case в bash-скрипте, который будет печатать официальный язык данной страны:
languages.sh
#!/bin/bash echo -n "Enter the name of a country: " read COUNTRY echo -n "The official language of $COUNTRY is " case $COUNTRY in Lithuania) echo -n "Lithuanian";; Romania | Moldova) echo -n "Romanian";; Italy | "San Marino" | Switzerland | "Vatican City") echo -n "Italian";; *) echo -n "unknown";; esac
Сохраните пользовательский скрипт в виде файла и запустите его из командной строки.
bash languages.sh
Скрипт попросит вас ввести страну. Например, если вы введете «Литва», он будет соответствовать первому шаблону, и команда
echo
в этом предложении будет выполнена.
Скрипт выведет следующий вывод:
Enter the name of a country: Lithuania The official language of Lithuania is Lithuanian
Enter the name of a country: Argentina The official language of Argentina is unknown
Вывод
К настоящему времени вы должны хорошо понимать, как писать операторы bash case. Они часто используются для передачи параметров в сценарий оболочки из командной строки. Например, сценарии инициализации используют операторы case для запуска, остановки или перезапуска служб.
Заявление ACLU о пересмотре закона об эпиднадзоре
ACLU и другие группы подали в суд иск против нового закона о надзоре в США
Википедия Заявление о цензуре отправляет «запутывающее» сообщение
Правовой эксперт ставит под сомнение вопрос о том, должен ли сторожевой пейджор надлежит нарушать запрет на странице Википедии раньше на этой неделе.
Bash if..else заявление
Принятие решений - одна из самых фундаментальных концепций компьютерного программирования. Как и в любом другом языке программирования, if, if..else, if..elif..else и вложенные операторы if в Bash могут использоваться для выполнения кода на основе определенного условия.







