Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

echo "Usage:`basename $0` [start | stop | help] >&2

exit 1

fi;

# присвойте переменной ОРТ параметр

OPT=$1

case $OPT in

start) echo "starting… `basename $0`"

# здесь коды для начала процесса

;;

stop) echo "stopping..`basenarae $0`"

# здесь колы для прекращения процесса

;;

help)

# здесь находится код для отображения справочной страницы

;;

*) echo "Usage: `basename $0` [start | stop | help]"

;;

esac

Если сценарию передается неверный параметр, получим следующее:

$ caseparam what

Usage:caseparam [start|stop | help]

В случае передачи действительного параметра:

$ caseparam stop

stopping..caseparam

<p><emphasis><strong>18.4.5. Прием потока ввода без применения шаблонных команд</strong></emphasis></p>

После шаблонной части необязательно указывать команды; если после шаблонной части команды отсутствуют, до перехода к дальнейшей обработке выполняется фильтрация нежелательных откликов.

Если в отдел учета следует направить отчет об учетной записи, сначала желательно удостовериться, что пользователь правильно ввел номер отдела, а затем уже уточнить, какой отчет выполняется. Такой подход реализуется при сравнении с шаблоном всех требуемых значений; любые другие методы неприемлемы.

В следующем сценарии указано, что если пользователь вводит номер отдела, который не совпадает со значением 234, 453, 655 или 454, то пользователь выйдет из сценария. Если номер отдела указан правильно, аналогичный подход применяется при определении типа отчета. По окончании выполнения оператора case остаются действительный номер отдела и правильный тип отчета. Ниже приводится соответствующий сценарий.

$ pg casevalid

#!/bin/sh

# casevalid

TYPE=""

echo -n "enter the account dept No: :"

read ACC

case $ACC in

234);;

453);;

655);;

454) ;;

*) echo "`basename $0`: Unknown dept No:" >&2

echo "try..234,453,655,454" exit, 1

esac

# если оказались здесь, получен верный номер отдела

echo " 1. post"

echo " 2. prior"

echo -n "enter the type of report: "

read ACC_TYPE

case $ACC_TYPE in

l)TYPE=post;;

2}TYPE=prior;;

*) echo "`basename $0`: Unknown account type." >&2

exit 1

;;

esac

# если оказались здесь, значит все указано правильно!

echo "now running report for dept $ACC for the type $TYPE"

# выполняем отчет о команде.

Если вводимые данные достоверны, получим:

$ casevalid

enter the account dept No: :234

   1. . post

   2. . prior

enter the type of report:2

now running report for dept 234 for the type prior

Если номер отдела введен неверно, получим:

$ casevalid

enter the account dept No: :432

casevalid: Unknown dept No: try..234,453,655,454

При вводе неправильного типа отчета, получим:

$ casevalid

enter the account dept No: :655

   1. . post

   2. . prior

enter the type of report:4

casevalid: Unknown account type.

<p><emphasis><strong>18.4.6. Значения переменных, заданные по умолчанию</strong></emphasis></p>

Если при просмотре значения переменной пользователь нажимает клавишу [Return], сценарий завершает работу не всегда. С помощью проверки определяется, установлена ли данная переменная, и если не установлена, то ей может быть присвоено значение.

В следующем сценарии для выполнения отчета пользователю предлагают ввести название дня недели. Если пользователь нажимает клавишу [Return], используется день недели, заданный по умолчанию, а именно "Saturday". Это название и присваивается переменной when.

Если пользователь вводит название другого дня, с помощью оператора case выполняется проверка, совпадает ли введенное название с названием одного из дней недели, предназначенных для выполнения сценария, а именно "Saturday", "Sunday"

Перейти на страницу:

Похожие книги

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии