Android

Bash case заявление

Introduction to Bash Scripting 13 - The Case Statement

Introduction to Bash Scripting 13 - The Case Statement

Оглавление:

Anonim

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

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

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

Синтаксис описания случая

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

case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac

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

Пример описания случая

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

languages.sh

#!/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

Enter the name of a country: Argentina The official language of Argentina is unknown

Вывод

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

терминал bash