Поиск по сайту:
Если вы можете представить себе общество, где лакеями будут роботы, вы можете представить все, что угодно. (Алан.Дж.Перлис)

Заявление Case в Bash1 мин для чтения

01.03.2019
Заявление 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, за которым следует выражение case и ключевое слово in. Утверждение заканчивается ключевым словом 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

 

Читать  Как установить Go на Linux Mint 20?

Сохраните пользовательский скрипт в виде файла и запустите его из командной строки.

bash languages.sh

 

Скрипт попросит вас ввести страну. Например, если вы введете «Russia», она будет соответствовать первому шаблону, и команда echo в этом предложении будет выполнена.

Скрипт выведет следующий вывод:

Введите название страны: Russia
Официальный язык Russia это Russian

 

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

Введите название страны: Ukraine
Официальный язык Ukraine is неизвестный

 

Заключение

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:

Один комментарий к Заявление Case в Bash1 мин для чтения

  1. Вася:

    официальный язык Бразилии — португальский.

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

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

**ссылки nofollow

Это может быть вам интересно

Рекомендуемое
После основного выпуска WordPress 5.0 и ряда второстепенных выпусков, был…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: