Как использовать оператор Case в Bash в Linux

12 set 2022 2 min di lettura
Как использовать оператор Case в Bash в Linux
Indice dei contenuti

Введение

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

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

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

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

Оператор Case Bash имеет следующую форму:

case EXPRESSION in

 PATTERN_1)
 STATEMENTS
 ;;

 PATTERN_2)
 STATEMENTS
 ;;

 PATTERN_N)
 STATEMENTS
 ;;

 *)
 STATEMENTS
 ;;
 esac
  • Каждый оператор Case начинается с ключевого слова 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.