Оператор выбора 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
Задание: Создайте меню, в котором пользователю предлагается создать, копировать, удалить, переместить, переименовать указанный файл. Все данные, необходимые для выполнения этих команд, вводятся пользователем с клавиатуры.