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

Тейнсли Дэвид

Шрифт:

else

LEN_PASS=1

fi

# проверка наличия дубликатов… if check_duplicate $NUM; then

DUPLICATED=0

else

DUPLICATE=1

echo "Staff Number: There ls already a employee with this number" continue_prompt

fi

if [ "$LEN_PASS"="0" -a "$NUM_PASS"="0" -a "$DUPLICATE"="0" ] then

break

else

echo "Staff Number: Non-Numeric or Too Many Numbers In Field" continue_prompt

fi

else

echo "Staff Number: No Input Detected, This Field Requires a Number" continue_prompt fi done

# == Имя

while :

do

echo -n "Employee's First Name:"

read F_NAME

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

if characters $F_NAME; then

F_NAME_PASS=0

else

F_NAME_PASS=1

fi

if length_check $F_NAME 20; then

LEN_PASS=0

else

LEN_PASS=1

fi

# oбa условия должны быть истинными для выхода из этого цикла if [ "$LEN_PASS"="0" -a "$F_NAME_PASS"="0" ]; then

break

else

echo "Staff First Name: Non-Character or Too Many Characters In Field" continue_prompt

fi

else

echo "Staff First Name: No Input Detected, This Field Requires Characters"

continue_prompt

fi

done

# == Фамилия

while :

do

echo -n "Employee's Surname :"

read S_NAME

if [ "$S_NAME" != "" ]; then if characters $S_NAME; then

$_NAME_PASS=0

else

$_NAME_PASS=1

fi

if length_check $S_NAME 20; then

LEN_PASS=0

else

LEN_PASS=1

fi

if [ "$LEN_PASS"="0" -a "$S_NAME_PASS"= "0" ]; then

break else

echo "Staff Surname: Non-Character or Too Many Characters In Field" continue_prompt fi else

echo "Staff Surname: No Input Detected, This Field Requires Characters" continue_prompt fi done

# == Отдел

while :

do

echo -n "Company Department :" read DEPART case $DEPART in

ACCOUNTS|Accounts|accounts) break;;

SALES|Sales|sales) break;; IT|It|it) break;;

CLAIMS|Claims|claims) break;;

Services|SERVICES|services) break;;

*) echo "Department: Accounts, Sales, IT, Claims, Services";; esac done )

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

clear

echo -e "\t\t\tADD A EMPLOYEE RECORD"

if [ -s $DBFILE ]; then :

else

echo "Information: Creating new file to add employee records"

>$DBFILE fi

add_rec if continue_promptYN "Do You wish To Save This Record " "Y"; then

echo "$NUM:$F_NAME:$S_NAME:$DEPART" >> $DBFILE

echo "record saved"

sleep 1

sort +2 -t: $DBFILE > $HOLD1 2> /dev/nuil

if [ $?
– ne 0 ]; then

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

exit 1 fi

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

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

exit 1 fi

else

echo " record not saved"

sleep 1 fi

22.2. Удаление записей

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

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

1. Поиск записи.

2. Отображение записи.

3. Подтверждение процедуры удаления.

4. Обновление файла.

Чтобы найти запись, воспользуемся полем, где содержатся фамилии. После того как пользователь введет фамилию, по которой ведется поиск, можно приступать к

обработке. Можно применить команду grep или утилиту awk. Но поскольку данный файл, скорее всего, содержит не более 100 записей, просмотрим его и определим наличие совпадений.

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

Чтобы применить команду grep или утилиту awk, можно выполнить поиск в файле DBFILE:

echo "enter the surname to search "

read STR

#при работе с awk используйте команду

awk -F: '/$STR/' DBFILE

#при работе с grep используйте команду

grep "$STR" DBFILE

  • Читать дальше
  • 1
  • ...
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • ...

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

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win