Книга: Операционная система UNIX

Селекторы

Селекторы

Оператор case предоставляет удобную форму селектора:

case слово in
шаблон1)
 command

 ...
 ;;
шаблон2)
 command
 ...
 ;;
*)
 command
 ...
 ;;
esac

Значение слово сравнивается с шаблонами, начиная с первого. Если совпадение найдено, то выполняются команды соответствующего раздела, который заканчивается двумя символами ';'. Шаблоны допускают наличие масок, которые были рассмотрены нами в разделе "Подстановки, выполняемые командным интерпретатором". Раздел с шаблоном '*' аналогичен разделу default в синтаксисе селектора switch языка С: если совпадения с другими шаблонами не произошло, то будут выполняться команды раздела '*)'. В качестве примера использования селектора приведем скрипт запуска и останова системы печати в SCO UNIX.

state=$1
set `who -r`
case $state in
'start')
 if [ $9 = "2" -o $9 = "3" ]
 then
  exit
 fi
 [ -f /usr/lib/lpshed ] && /usr/lib/lpshed
 ;;
'stop')
 [ -f /usr/lib/lpshut ] && /usr/lib/lpshut
 ;;
*)
 echo "usage $0 start|stop"
 ;;
esac

В случае, когда скрипт вызван с параметром start, будет произведен запуск системы печати. Если параметр скрипта — stop, то система печати будет остановлена. Запуск скрипта с любым другим параметром приведет к выводу сообщения об ошибке.

Оглавление книги


Генерация: 0.079. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз