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

EMPLOYEE SURNAME : $S_NAME

EMPLOYEE DEPARTMENT : $DEPART

MAYDAY

Вот как выглядит поток вывода при просмотре записи:

Enter the employee surname to view or all for all records:Wilson searching record… 8

EMPLOYEE NO89232
FIRST NAMEPeter
SURNAMEWilson
DEPARTMENTIT

Do You Wish To Print This Record [Y..N] [N] :

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

$ pg dbaseview

#!/bin/sh

#dbaseview

#просмотр записей

#игнорирование сигналов trap "" 2 3 15

#временные файлы

HOLD1=HOLD1.$$

DBFILE=DBFILE

continue_promptYN ()

{

#continue_prompt

_STR=$1

_DEFAULT=$2

#проверим, что параметры верны

if [ $# -lt 1 ]; then

echo "continue_prompt: I need a string to display"

return 1

fi

while :

do

echo -n "$_STR [Y..N] [$_DEFAULT]:"

read _ANS

: $'{_ANS:=$_DEFAULT)

if [ "$_ANS"="" ]; then

case $_ANS in

Y) return 0 ;;

N) return 1 ;;

esac

fi

case $_ANS in

у|Y|Yes|YES)

return 0;;

n|N|No|NO)

return 1;;

*) echo "Answer either Y or N, default ls $_DEFAULT";;

esac

done

}

display_rec() {

#diaplay_rec

#можно применить команду cat <<.

tput cup 5 3

echo "EMPLOYEE NO: $CODE"

echo "FIRST NAME : $F_NAME"

echo "SURNAME : $S_NAME"

echo "DEPARTMENT : $DEPART"

echo -e "\n\n"

}

no_recs () {

# no_recs

echo -e "\n\nSorry could not find a record with the name $STR"

}

get_rec () {

# get_rec

clear

echo -n "Enter the employee surname to view or all for all records:"

read STR

if [ "$STR"="q" ] ; then

return 1 fi

if [ "$STR"="all" ]; then # просмотр всех записей

echo "Surname Name Employee Code" echo"____________________________________"

cat $DBFILE |awk -F: '{print $2"\t"$3"\t\t"$1}' | more

return 0

fi

REC=0

MATCH=no

if [ "$STR" != "" ]; then

while read CODE F_NAME S_NAME DEPART

do

REC=`expr $REC + 1`

tput cup 3 4

echo -n " searching record.. $REC" if [ "$S_NAME"="$STR" ]; then

# обнаружено имя

MATCH=yes

display_rec

break

else

continue

fi

done <$DBFILE

else

echo "Enter a surname to search for or q to quit"

fi

if [ "$MATCH"="no" ]; then

no_recs

fi

}

# главная программа

SAVEDIFS=$IFS

IFS=:

get_rec

if [ "$MATCH"="yes" ]; then

if continue_promptYN "Do You Wish To Print This Record" "N"; then

lpr << MAYDAY

RECORD No: $REC

EMPLOYEE NUMBER : $CODE

EMPLOYEE NAME : $F_NAME

EMPLOYEE SURNAME : $S_NAME

EMPLOYEE DEPARTMENT : $DEPART

MAYDAY

else

echo "No print of $S_NAME"

# не отображается fi # если желательно отображение

fi # если имеется совпадение

IFS=$SAVEDIFS

<p><strong>22.5. Заключение</strong></p>

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

В среде программистов известно довольно старое изречение. Звучит оно примерно так: "Мусор на входе, мусор на выходе… кого это заботит, только б не было слишком поздно". Это означает, что если не проверять входные данные сценариев, в поток вывода может попасть ненужная информация.

<p><emphasis><strong>ГЛАВА 23</strong></emphasis></p>

Отладка сценариев

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

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

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

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

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

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

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

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

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