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

echo "Problems creating temp file $HOLD1..check it out" exit 1 fi

mv $HOLD1 DBFILE if [ $? -ne 0 ]; then

echo "Problems moving temp file..check it out" exit 1 fi

# сортировка файла после изменений

sort +2 -t: $DBFILE >$HOLD2 2> /dev/null if [ $? -ne 0 ]; then

echo "problems trying to sort the file..check it out"

exit 1 fi

mv $HOLD2. $DBFILE if [ $? -ne 0 ]; then

echo "problems moving the temp sort file..check it out"

exit 1 fi else

echo "no deletion"

# удаление отсутствует

fi # если нужно удалить

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

# восстановление установок IFS IFS=$SAVEDIFS

<p><strong>22.3. Обновление записей</strong></p>

При рассмотрении процесса удаления записи уже обсуждался код, приводящий к обновлению записи.

Когда обнаруживается корректная запись, все переменные поля записи с помощью переменной, выполняющей присваивание по умолчанию, назначаются переменной temp:

: [переменная, заданная по умолчанию:=переменная)

Пользователь может просто нажать клавишу [Return] для тех полей, значения которых изменять нежелательно. Затем переменная temp заменяется значением, заданным по умолчанию. Для выполнения произвольных обновлений можно просто вводить в соседние поля новые значения.

echo -n -e "EMPLOYEE NO: $C0DE\n"

echo -n "FIRST NAME : [$F_NAME] >"

read _F_NAME

: ${_FNAME:=$P_NAME}

Для реального обновления файла достаточно снова воспользоваться командой grep с опцией -v. Все записи обновляются по отдельности и перенаправляются во временный файл. Номер служащего задается в виде строки команды grep:

grep ~v $C0DE $DBFILE >$HOLD1

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

echo "$CODE:$_F_NAME:$_S_NAME:$_DEPART" >> $HOLD1 mv $HOLD1 $DBFILE

После этого выполняется сортировка файла с помощью потока вывода, который сначала перенаправлялся во временный файл, затем перемещается обратно — в исходный файл DBFILE. Проверки кода завершения выполняются во время упомянутых действий с файлами, и пользователю выдаются сообщения об имеющихся затруднениях. Ниже показан поток вывода при обновлении записи.

Enter the employee surname :Penny

searching record.. 7

EMPLOYEE NO: 98211

FIRST NAME : Simon

SURNAME : Penny

DEPARTMENT : Services

ls this the record you wish to amend [Y..N] [Y]:

amending

EMPLOYEE NO: 98211

FIRST NAME : [Simon] >

SURNAME : [Penny] >

DEPARTMENT : [Services] >Accounts Ready to save this record [Y..N] [Y] :

Полный сценарий, выполняющий обновление записей:

$ pg dbasechange

#!/bin/sh

# dbasechange

   • обновление записи

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

   • временные файлы DBFILE=DBFILE HOLD1=HOLD1.$$ HOLD2=HOLD2.$$

continue_promptYN()

{

   • continue_jprompt _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|Y|Yes|YES)

return 0;;

n|N|No|NO) return 1;;

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

esac

done }

display_rec() {

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

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

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

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

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

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

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

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

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