Объявление случая в Bash

27 mar 2024 2 min di lettura
Объявление случая в Bash
Indice dei contenuti

Введение

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

Оператор Bash имеет аналогичную концепцию с оператором case в Javascript или switch в 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, за которым следует выражение с учетом регистра и ключевое слово in. Оператор заканчивается ключевым словом esac.
  • Вы можете использовать несколько шаблонов, разделенных оператором |. Оператор ) завершает список шаблонов.
  • Шаблон может содержать специальные символы.
  • Шаблон и связанные с ним команды называются предложением.
  • Каждое предложение должно заканчиваться ;;.
  • Выполняются команды, соответствующие первому шаблону, соответствующему выражению.
  • Обычной практикой является использование подстановочного символа звездочки ( * ) в качестве окончательного шаблона для определения случая по умолчанию. Этот шаблон всегда будет совпадать.
  • Если шаблон не найден, возвращаемый статус равен нулю. В противном случае состояние возврата является состоянием выхода выполненных команд.

Пример заявления по делу

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

#!/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. Они часто используются для передачи параметров в сценарий оболочки из командной строки. Например, сценарии инициализации используют операторы case для запуска, остановки или перезапуска служб.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.