ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Заявление Case в Bash

Заявление Case в Bash

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

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

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

 

Синтаксис описания case

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

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac

 

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

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

languages.sh
#!/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 для запуска, остановки или перезапуска служб.

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

Exit mobile version