Книга: Искусство программирования на языке сценариев командной оболочки
Пример 10-25. Создание меню с помощью case
Пример 10-25. Создание меню с помощью case
#!/bin/bash
# Грубый пример базы данных
clear # Очистка экрана
echo " Список"
echo " ------"
echo "Выберите интересующую Вас персону:"
echo
echo "[E]vans, Roland"
echo "[J]ones, Mildred"
echo "[S]mith, Julie"
echo "[Z]ane, Morris"
echo
read person
case "$person" in
# Обратите внимание: переменная взята в кавычки.
"E" | "e" )
# Пользователь может ввести как заглавную, так и строчную букву.
echo
echo "Roland Evans"
echo "4321 Floppy Dr."
echo "Hardscrabble, CO 80753"
echo "(303) 734-9874"
echo "(303) 734-9892 fax"
echo "[email protected]"
echo "Старый друг и партнер по бизнесу"
;;
# Обратите внимание: блок кода, анализирующий конкретный выбор, завершается
# двумя символами "точка-с-запятой".
"J" | "j" )
echo
echo "Mildred Jones"
echo "249 E. 7th St., Apt. 19"
echo "New York, NY 10009"
echo "(212) 533-2814"
echo "(212) 533-9972 fax"
echo "[email protected]"
echo "Подружка"
echo "День рождения: 11 февраля"
;;
# Информация о Smith и Zane будет добавлена позднее.
* )
# Выбор по-умолчанию.
# "Пустой" ввод тоже обрабатывается здесь.
echo
echo "Нет данных."
;;
esac
echo
# Упражнение:
# --------
# Измените этот сценарий таким образом, чтобы он не завершал работу
#+ после вывода информации о персоне, а переходил на ожидание нового
#+ ввода от пользователя.
exit 0
Очень хороший пример использования case для анализа аргументов, переданных из командной строки.
#! /bin/bash
case "$1" in
"") echo "Порядок использования: ${0##*/} <filename>"; exit 65;; # Параметры командной строки отсутствуют,
# или первый параметр -- "пустой".
# Обратите внимание на ${0##*/} это подстановка параметра ${var##pattern}. В результате получается $0.
-*) FILENAME=./$1;; # Если имя файла (аргумент $1) начинается с "-",
# то заменить его на ./$1
# тогда параметр не будет восприниматься как ключ команды.
* ) FILENAME=$1;; # В противном случае -- $1.
esac
- Пример 10-24. Использование case
- Пример 10-25. Создание меню с помощью case
- Пример 10-26. Оператор case допускает использовать подстановку команд вместо анализируемой переменной
- Пример 10-27. Простой пример сравнения строк
- Пример 10-28. Проверка ввода
- Пример 10-29. Создание меню с помощью select
- Пример 10-30. Создание меню с помощью select в функции
- Пример 10-24. Использование case
- Пример 10-29. Создание меню с помощью select
- Пример 10-28. Проверка ввода
- Пример 10-26. Оператор case допускает использовать подстановку команд вместо анализируемой переменной
- Пример 10-27. Простой пример сравнения строк
- Пример 10-30. Создание меню с помощью select в функции
- СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ПРОСТОЙ ФУНКЦИИ
- Пример установочного скрипта
- Пример из практики
- Повышение производительности приложений с помощью хранимых процедур
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Создание файлов с блокировкой