10.4. Операторы выбора

10.4. Операторы выбора

Инструкции case и select технически не являются циклами, поскольку не предусматривают многократное исполнение блока кода. Однако, они, как и циклы, управляют ходом исполнения программы, в зависимости от начальных или конечных условий.

case (in) / esac

Конструкция case эквивалентна конструкции switch в языке C/C++. Она позволяет выполнять тот или иной участок кода, в зависимости от результатов проверки условий. Она является, своего рода, краткой формой записи большого количества операторов if/then/else и может быть неплохим инструментом при создании разного рода меню.

case "$variable" in "$condition1" ) command... ;; "$condition2" ) command... ;; esac

? Заключать переменные в кавычки необязательно, поскольку здесь не производится разбиения на отдельные слова.

? Каждая строка с условием должна завершаться правой (закрывающей) круглой скобкой ).

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

? Блок case должен завершаться ключевым словом esac (case записанное в обратном порядке).