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

_LENGTH=`echo $_STR | awk '{print length ($0) }"`

if [ "$_LENGTH" -gt "$_MAX" ]; then

return 1 else

return 0 fi }

Функция, выполняющая проверку наличия в строке исключительно числовых данных:

a_number ()

   • a_number

   • $1=string {

_NUM=$1

_NUM=`echo $1 awk '{if($0~/[^0-9]/) print "1")'`

if [ "$_NUM" != "" ]

then

return 1

else

return 0

fi

}

Функция, позволяющая определить, состоит ли строжа исключительно из одних символов:

characters()

#characters

#$1=string

{

_LETTERS_ONLY=$1

_LETTERS_ONLY=`echo $1|awk '{if($0~/[^a‑zA‑Z]/) print "l"}'`

if [ "$_LETTERS_ONLY" != "" ]

then

return 1 else

return 0 fi

}

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

Чтобы сообщения находились на экране до тех пор, пока пользователь не нажмет на клавишу для их удаления, нужно воспользоваться командным приглашением. Следующая функция реализует командное приглашение read_a_char.

continue_promptYN() {

# continue_prompt

echo -n "Hit any key to continue.."

DUMMY=`read_a_char`

}

Когда вводятся данные пользователя, содержащие номер служащего, нужно убедиться, что ранее подобная информация не вводилась. Поле должно быть уникальным. Существует несколько способов для выполнения этой задачи; в данном случае применяется команда grep. С помощью команды grep выполняется поиск номера служащего, который содержится в строке _CODE. Если утилита awk не возвращает какого‑либо значения, то дублирующиеся значения отсутствуют и функция завершает выполнение с кодом возврата 0. Ниже приводится код этой функции. (Обратите внимание, что для нахождения точного соответствия в команде grep используется выражение "$_CODE\>". Двойные кавычки служат для сохранения значения переменной; при использовании одинарных кавычек ничего возвращаться не будет.)

check_duplicate() {

#check_duplicate

#проверка дубликата номера служащего

_CODE=$1

MATCH="grep "$_CODE\>" $DBFILE"

echo $_CODE

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

return 0 # нет дублирования

else

return 1 # дубликат найден

fi

}

Ниже приводится часть программного кода, выполняющая проверку номера

служащего. Функционирование этого программного кода объясняется дальше.

while : do

echo -n "Employee Staff Number :"

read NUM

# проверка вводимых данных

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

if a_number $NUM; then

# номер OK

NUM_PASS=0

else

NUM_PASS=1

fi

if length_check $NUM 10; then

# длина OK

LEN_PASS=0

else

LEN_PASS=1

fi

# проверка наличия дубликатов…

if check_duplicate $NUM; then

# нет дубликатов

DUPLICATED=0

else

DUPLICATED=1

echo "Staff Number: There ls already an 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 (фактически, каждое поле, содержащее записи данных, обрабатывается в отдельном цикле while). Поэтому, если имеется недействительная запись, последует запрос о просмотре ее исходного значения.

После просмотра номера служащего проверяется, содержатся ли в поле некоторые данные:

if [ "$NUM" != "" ]

Если поле не содержит данные для ввода, не выполняется часть then конструкции if. В части else, которая завершает код подтверждения поля, отображается следующее сообщение:

Staff Number: No Input Detected, This Field Requires a Number

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

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

Библия БДСМ. Полное руководство
Библия БДСМ. Полное руководство

Первое исчерпывающее пособие по БДСМ. Уникальный иллюстрированный гид для тех, кому просто любопытно, и для тех, кто уже в Теме. В этой книге известные педагоги и профессионалы ответили на все важные вопросы и раскрыли все интересующие вас темы: основные принципы, ролевые игры, господство, подчинение, фистинг, садизм, мазохизм, связывание, физическое воздействие, тантра необычного секса и многое другое. Если вы хоть раз задумывались о БДСМ, значит, эта книга то, что вам нужно. Она способна обучить, вдохновить и бросить вызов даже опытным игрокам. Не бойтесь экспериментировать, и добро пожаловать в мир сексуальных приключений!

Тристан Таормино , Литагент «5 редакция»

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Руководства / Дом и досуг / Образовательная литература / Словари и Энциклопедии
Путь менеджера от новичка до гуру
Путь менеджера от новичка до гуру

«Путь менеджера» – это сборник лучших материалов online-сообщества (learning community) менеджеров E-xecutive за пять лет (2001–2005), которые впервые публикуются offline. Возможно, это книга с самым большим количеством авторов: 20 сотрудников E-xecutive и более 200 участников Сообщества писали, выбирали и редактировали материалы.Книга представляет собой «карту местности» для менеджера, стремящегося найти кратчайший путь к успеху, на которой отображены открытия лучших «картографов» – всемирно признанных бизнес-гуру и успешных российских топ-менеджеров. Эта книга о том, чем в действительности живут менеджеры, о чем не пишут в учебниках, и предназначается она для тех, кто стремится не только к карьерному успеху, но и к настоящей эффективности, личностному и профессиональному развитию.

Сообщество менеджеров E-xecutive

Руководства / Словари и Энциклопедии