Заявление о случае Bash

Заявление о случае Bash

Оператор case в bash обычно используется для упрощения сложных условных выражений, когда есть несколько вариантов выбора. Использование оператора case вместо вложенных операторов if сделает ваши bash-скрипты более читабельными и простыми в поддержке.

Оператор case в Bash имеет концепцию, схожую с оператором switch в Javascript или C. Главное отличие заключается в том, что, в отличие от оператора switch в C, оператор case в Bash не продолжает поиск соответствия шаблону после того, как он найден и выполнены операторы, связанные с этим шаблоном.

В этом руководстве будут рассмотрены основы оператора case в Bash и показано, как использовать его в скриптах оболочки.

Синтаксис оператора case

Синтаксис оператора case в Bash состоит из ключевого слова « case », за которым следует значение для сопоставления, ключевого слова « in » и одного или нескольких шаблонов с соответствующими блоками кода, заключенными в операторы « ;; »:

 case EXPRESSION in  PATTERN_1 ) STATEMENTS ;;  PATTERN_2 ) STATEMENTS ;;  PATTERN_N ) STATEMENTS ;;  * ) STATEMENTS ;; esac
  • Каждый оператор case начинается с ключевого слова case , за которым следует выражение case и ключевое слово in . Оператор заканчивается ключевым словом esac .
  • Можно использовать несколько шаблонов, разделённых оператором | . Оператор ) завершает список шаблонов.
  • Шаблон может содержать специальные символы .
  • Шаблон и связанные с ним команды называются предложением.
  • Каждое предложение должно заканчиваться знаком ;; .
  • Выполняются команды, соответствующие первому шаблону, который соответствует выражению.
  • Обычно в качестве окончательного шаблона для определения регистра по умолчанию используется подстановочный символ звёздочки ( * ). Этот шаблон всегда будет совпадать.
  • Если шаблон не найден, возвращается нулевой статус. В противном случае возвращается статус завершения выполненных команд.

Пример заявления

Ниже приведен пример использования оператора case в скрипте bash, который выводит официальный язык заданной страны:

языки.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

Если вы введете страну, которая не соответствует никакому другому шаблону, кроме подстановочного символа звездочки по умолчанию, скажем, Аргентина, скрипт выполнит команду echo внутри предложения по умолчанию.

 Enter the name of a country: Argentina The official language of Argentina is unknown

Заключение

К настоящему моменту вы должны хорошо понимать, как писать операторы case в bash. Они часто используются для передачи параметров скрипту оболочки из командной строки. Например, в скриптах init операторы case используются для запуска, остановки и перезапуска служб.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

терминал bash

Связанные руководства

Источник

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

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