<Предыдущая | Содержание: | Следующая>
Шаблоны
Шаблоны, используемые случаев такие же, как и при раскрытии имени пути. Шаблоны заканчиваются знаком «)». Вот несколько допустимых шаблонов:
Таблица 31-1: Примеры шаблонов case
Описание рисунка
Описание рисунка
a) Соответствует, если слово равно «а».
[[:альфа:]]) Соответствует, если слово представляет собой один буквенный символ.
???) Соответствует, если слово составляет ровно три символа.
*.текст) Соответствует, если слово заканчивается символами «.txt».
*) Соответствует любому значению слово. Рекомендуется включать это в качестве последнего шаблона в случаев команда, чтобы поймать любые значения слово что не соответствовало предыдущему шаблону; то есть, чтобы перехватить любые возможные недопустимые значения.
Вот пример работы паттернов:
#! / Bin / Баш
читать -p "ввести слово>" case $ REPLY in
[[: alpha:]]) echo «представляет собой один буквенный символ». ;; [ABC] [0-9]) echo «представляет собой A, B или C, за которым следует цифра». ;;
???) echo "состоит из трех символов". ;;
* .txt) echo "- слово, оканчивающееся на '.txt'" ;;
*) echo "это что-то другое". ;; esac
#! / Bin / Баш
читать -p "ввести слово>" case $ REPLY in
[[: alpha:]]) echo «представляет собой один буквенный символ». ;; [ABC] [0-9]) echo «представляет собой A, B или C, за которым следует цифра». ;;
???) echo "состоит из трех символов". ;;
* .txt) echo "- слово, оканчивающееся на '.txt'" ;;
*) echo "это что-то другое". ;; esac
Также возможно комбинировать несколько рисунков, используя символ вертикальной черты в качестве разделителя. Это создает условный образец «или». Это полезно, например, для обработки как прописных, так и строчных символов. Например:
#! / Bin / Баш
# case-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
A. Отображение системной информации
B. Показать дисковое пространство
C. Отображение использования домашнего пространства
Q. Покидать "
read -p "Ввести выбор [A, B, C или Q] > "
case $ REPLY в
q | Q) echo «Программа завершена». выход
;;
а | А) echo "Имя хоста: $ HOSTNAME" время работы
;;
б | Б) df -h
;;
c | C) если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
fi
#! / Bin / Баш
# case-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
A. Отображение системной информации
B. Показать дисковое пространство
C. Отображение использования домашнего пространства
Q. Покидать "
read -p "Ввести выбор [A, B, C или Q] > "
case $ REPLY в
q | Q) echo «Программа завершена». выход
;;
а | А) echo "Имя хоста: $ HOSTNAME" время работы
;;
б | Б) df -h
;;
c | C) если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
fi
;;
*) echo "Invalid entry"> & 2 exit 1
;;
ESAC
;;
*) echo "Invalid entry"> & 2 exit 1
;;
ESAC
Здесь мы модифицируем кейс-меню программа для использования букв вместо цифр для выбора меню. Обратите внимание, как новые шаблоны позволяют вводить как прописные, так и строчные буквы.