* ) echo "Машина на другом типе процессора";;
Оператор case допускает использование шаблонных конструкций.
Пример 10-27. Простой пример сравнения строк
# match-string.sh: простое сравнение строк
PARAMS=2 # Функция требует два входных аргумента.
[ $# -eq $PARAMS ] || return $BAD_PARAMS
match_string $a # неверное число аргументов
match_string $a $b # не равны
match_string $b $d # равны
Пример 10-28. Проверка ввода
# isalpha.sh: Использование "case" для анализа строк.
isalpha () # Проверка - является ли первый символ строки символом алфавита.
if [ -z "$1" ] # Вызов функции без входного аргумента?
[a-zA-Z]*) return $SUCCESS;; # Первый символ - буква?
} # Сравните с функцией "isalpha ()" в языке C.
isalpha2 () # Проверка - состоит ли вся строка только из символов алфавита.
[ $# -eq 1 ] || return $FAILURE
*[!a-zA-Z]*|"") return $FAILURE;;
isdigit () # Проверка - состоит ли вся строка только из цифр.
{ # Другими словами - является ли строка целым числом.
[ $# -eq 1 ] || return $FAILURE
*[!0-9]*|"") return $FAILURE;;
check_var () # Интерфейс к isalpha
echo "\"$*\" начинается с алфавитного символа."
then # Дальнейшая проверка не имеет смысла, если первй символ не буква.
echo "\"$*\" содержит только алфавитные символы."
echo "\"$*\" содержит по меньшей мере один не алфавитный символ."
echo "\"$*\" начинсется с не алфавитного символа ."
# Если функция вызвана без входного параметра,
#+ то считается, что строка содержит "не алфавитной" символ.
digit_check () # Интерфейс к isdigit ().
echo "\"$*\" содержит только цифры [0 - 9]."
echo "\"$*\" содержит по меньшей мере один не цифровой символ."
e=`echo $b` # Подстановка команды.
check_var # Вызов без параметра, что произойдет?
exit 0 # Сценарий дополнен S.C.
# Напишите функцию 'isfloat ()', которая проверяла бы вещественные числа.