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

How Use Bash Case Statement



Операторы case в Bash похожи на операторы if-else, но проще и проще. Это помогает сопоставить одну переменную с несколькими значениями. Он используется, когда вам требуются операторы IF-else с несколькими операторами Elif ... Он очень похож на оператор switch в C, однако оператор case bash не продвигается вперед после сопоставления с шаблоном

В этой статье мы объясним, как использовать оператор case в Bash на примере в ОС Linux.







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

Вот синтаксис оператора case в bash:



Синтаксис:



кейс $ переменная в
шаблон-1)
команды
;;
шаблон-2)
команды
;;
шаблон-3)
команды
;;
узор-N)
команды
;;
*)
команды
;;
esac
  • Оператор case начинается с case и заканчивается esac
  • Символ) используется для завершения шаблона. Чтобы разделить несколько шаблонов, | оператор используется, как показано ниже:
кейс $ переменная в
шаблон-1|шаблон-2)
команды
....
....
;;
шаблон-3|шаблон-4)
команды
....
....
;;
  • Шаблон с командами известен как предложение, и каждое предложение заканчивается на (;;).
  • Символ звездочки * может использоваться для обозначения регистра по умолчанию.
  • Оператор case в Bash сначала сопоставляет входную переменную $ с различными шаблонами. Если шаблон совпадает, то будет выполнен соответствующий набор команд до двойной точки с запятой (;;).

Пример 1:

Следующий пример касается кассового отчета bash, в котором пользователя просят ввести название месяца. Если этот ввод соответствует определенным шаблонам в сценарии, будет выполнена соответствующая команда echo. Команда echo отобразит информацию о международном событии в этом конкретном месяце.





Чтобы использовать этот сценарий, создайте простой текстовый файл; назовите его с расширением файла .sh. Добавьте в него следующий скрипт и сохраните его. Затем назначьте этот файл для выполнения разрешений, выполнив следующую команду в Терминале:

$судо chmod 777filename.sh

Чтобы выполнить этот файл bash, просто запустите ./, за которым следует имя файла bash, как показано ниже:



$./filename.sh

При выполнении сценария вас попросят ввести название месяца в качестве входных данных. Если название месяца совпадает, будет отображаться соответствующее событие в этом конкретном месяце, в противном случае соответствующая информация не будет отображаться.

Обратите внимание, что shopt -s nocasematch используется для сопоставления с шаблоном независимо от его регистра.

магазины -sнет совпадения

выбросил 'Введите название месяца'
читатьмесяц
кейс $ месяц в
Январь)
выбросил «24 января Международный день образования».
;;
Февраль)
выбросил «20 февраля - Всемирный день социальной справедливости».
;;
Март)
выбросил «Международный женский день 8 марта».
;;
апрель)
выбросил '7 апреля Всемирный день здоровья'
;;
Может)
выбросил 'Международный день семьи 15 мая'
;;
июнь)
выбросил '20 июня Всемирный день беженцев'
;;
июль)
выбросил '11 июля Всемирный день народонаселения'
;;
*)
выбросил 'Соответствующая информация не найдена'
;;
esac

Пример 2:

Следующий пример касается кассового отчета bash, в котором пользователя просят ввести название страны. Если этот ввод соответствует определенным шаблонам в сценарии, будет выполнена соответствующая команда echo. Команда echo отобразит информацию о столице этой конкретной страны.

Чтобы использовать этот сценарий, следуйте тому же методу, который описан в приведенном выше примере. После этого выполните сценарий, и вам будет предложено ввести название страны в качестве входных данных. Если название страны совпадает с предварительно заданными названиями стран, будет отображаться название столицы этой страны, в противном случае будет отображено сообщение Информация недоступна.

#! / bin / bash
магазины -sнет совпадения
выбросил -n 'Введите название страны:'
читатьстрана

выбросил -n 'Столица$ странаявляется '
кейс $ страна в
Пакистан)
выбросил -n 'Исламабад'
;;
Фиджи)
выбросил -n 'Сухой'
;;
Соединенное Королевство| 'Объединенное Королевство')
выбросил -n 'Лондон'
;;
Турция)
выбросил -n 'Анкара'
;;
ИСПОЛЬЗОВАНИЕ)
выбросил -n 'Вашингтон'
;;
*)
выбросил -n «Информация недоступна»
;;
esac
выбросил ''

Операторы case в bash упрощают чтение и понимание сценария bash. В этой статье мы рассмотрели, как писать и использовать операторы case в bash. Теперь вы можете легко и просто написать многоуровневый оператор if-else, используя операторы case.