Skip to main content

Оператор выбора case

Оператор выбора имеет структуру:

case строка-образец in

строка-шаблон) список команд;;

строка-шаблон) список команд;;

...

esac

Строка-образец (это может быть и один символ) сравнивается со строкой-шаблоном. Если строка-образец совпадает со строкой-шаблоном, то выполняется соответствующий список команд (если команды записываются в одну строку, то ";" будет использоваться как разделитель команд).

Обычно последняя строка выбора имеет шаблон "*", что в структуре "case" означает "любое значение". Эта строка выбирается, если не произошло совпадение значения переменной (строки-образца) ни с одним из ранее записанных шаблонов.

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

echo "Введите имя файла: "

read x

echo " Выберите какую операцию выполнить с файлом:

1 - отсортировать

2 - выдать на экран

3 - определить число строк "

read y

case $y in

1) sort < $x ;;

2) cat < $x ;;

3) wc -l < $x ;;

*) echo " Ошибка. Нет такой команды" ;;

esac

Задание: Создайте меню, в котором пользователю предлагается создать, копировать, удалить, переместить, переименовать указанный файл. Все данные, необходимые для выполнения этих команд, вводятся пользователем с клавиатуры.