18.3.23. Несколько проверок, реализуемых с помощью elif

18.3.23. Несколько проверок, реализуемых с помощью elif

В следующем несложном примере протестируем введенные в сценарий имена пользователей.

Сначала в сценарии проверяется, действительно ли пользователь ввел имя; если имя не введено, то проверка не выполняется. Если имя введено, с помощью части elif проверяется, совпадает ли имя с root, louise или dave. В случае несовпадения имени ни с одним из перечисленных имен на экран выводится сообщение, что пользователь не является пользователем root, louise или dave.

$ pg ifelif

#!/bin/sh

# ifelif

echo -n "enter your login name :"

read NAME

# имя не введено, рассмотрение прекращается

if [ -z $NAME ] || [ "$NAME"="" ]; then

echo "You did not enter a name"

elif

# является ли именем root

[ "$NAME"="root" ]; then echo "Hello root"

elif

# именем является louise

[ $NAME="louise" ]; then echo "Hello louise"

elif

# именем является dave

[ "$NAME"="dave" ]; then echo "Hello dave"

else

# нет, это какое?то другое имя

echo "You are not root or louise or dave but hi $NAME"

fi

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

$ ifelif

enter your login name : dave Hello dave

$ ifelif

enter your login name : You did not enter a name

$ ifelif2

enter your login name : peter

You are not root or louise or dave but hi peter

18.3.24. Проверка нескольких вариантов размещения файла

Предположим, что к файлу проверки регистрации требуется применить команду cat. Файл в зависимости от того, кто из пользователей выполнял инсталляцию. находится либо в каталоге /usr/opts/audit/logs, либо в каталоге /usr/Iocal/audit/logs. Перед применением к файлу команды cat следует убедиться в том, что его можно просматривать; именно это и будет уточняться при проверке. Если файл нельзя найти или же его нельзя просматривать, на экран выводится сообщение об ошибке. Ниже приводится соответствующий сценарий:

$ pg ifcataudit

#!/bin/sh

#ifcataudit

#размещение файла регистрации

LOCAT_1=/usr/opts/audit/logs/audit.log

LOCAT_2=/usr/local/audit/audit, logs

if [ -r $LOCAT_1]; then

#если файл находится в этом каталоге и может просматриваться,

#применим к нему команду cat echo "Using L0CAT_1"

cat $LOCAT_1

elif

# иначе, файл должен находиться в этом каталоге и можно его просматривать

[ -r §L0CAT_2 ]

then

echo "Using LOCAT_2"

cat $LOCAT_2

else

# нет ни в одном каталоге…

echo `basename $0`: Sorry the audit file ls not readable or cannot be located." >S2

exit 1

fi

Если при выполнении указанного сценария установлено, что файл находится в каком?либо из двух каталогов и может просматриваться, то к нему можно применить команду cat. В противном случае на экран выводится сообщение об ошибке, и сценарий завершается. Этот пример неудачен, поскольку наш воображаемый файл отсутствует.

$ ifcataudit

ifcataudit: Sorry the audit file ls not readable or cannot be located.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Глава 6. Мудрость и глупость проверок безопасности

Из книги Искусство вторжения автора Митник Кевин

Глава 6. Мудрость и глупость проверок безопасности Системы безопасности должны побеждать каждый раз, а атакующему достаточно и одной победы. Дастин Дюкс Начальник тюрьмы приглашает экспертов для того, чтобы проверить процедуры безопасности в его учреждении, заботясь о


§ 1.3 Несколько слов о XML

Из книги Создание электронных книг в формате FictionBook 2.1: практическое руководство [Release 1.01 от 28.II.2010 г.] автора Кондратович Михаил Иосифович

§ 1.3 Несколько слов о XML Расширяемый язык разметки — eXtensible Markup Language, был создан для хранения структурированных данных в текстовом формате. Теоретически файлы XML должны легко читаться, как программным обеспечением, так и человеком.С использованием технологии XML можно


Multiple (Несколько)

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Multiple (Несколько) Программа AutoCAD выполняет полное сканирование экрана каждый раз, когда происходит выделение объекта. Режим Multiple (Несколько) позволяет выделить несколько объектов без задержки, и при нажатии клавиши Enter все точки будут выбраны за одно сканирование


Интуиция (Дзен) и искусство программной надежности: больше гарантий и меньше проверок

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Интуиция (Дзен) и искусство программной надежности: больше гарантий и меньше проверок Возможно, вы не заметили, что контракт противоречит мудрости, бытующей в программной инженерии. Поначалу это шокирует, но контракт - один из главных вкладов в надежность ПО.Правило


10.10. Несколько производителей, несколько потребителей

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

10.10. Несколько производителей, несколько потребителей Следующее изменение, которое мы внесем в нашу пpoгрaммy, будет заключаться в добавлении возможности одновременной работы нескольких потребителей вместе с несколькими производителями. Есть ли смысл в наличии


10.11. Несколько буферов

Из книги Scrum и XP: заметки с передовой автора Книберг Хенрик

10.11. Несколько буферов Во многих программах, обрабатывающих какие-либо данные, можно встретить цикл видаwhile ((n = read(fdin, buff, BUFFSIZE)) > 0) { /* обработка данных */ write(fdout, buff, n);}Например, программы, обрабатывающие текстовые файлы, считывают строку из входного файла, выполняют с ней


Подход третий: Несколько product owner’ов - несколько backlog’ов

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Подход третий: Несколько product owner’ов - несколько backlog’ов Похоже на второй вариант, по отдельному product backlog на команду, только ещё и с отдельным product owner’ом на каждую команду. Мы не пробовали так делать, и, скорее всего, пробовать не будем.Если два product backlog’а касаются одного и


3.14.9. Еще несколько образцов

Из книги Искусство вторжения автора Митник Кевин

3.14.9. Еще несколько образцов Завершим наш список несколькими выражениями из категории «разное». Как обычно, почти все эти задачи можно решить несколькими способами.Пусть нужно распознать двузначный почтовый код американского штата. Проще всего, конечно, взять выражение


Глава 6. Мудрость и глупость проверок безопасности

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Глава 6. Мудрость и глупость проверок безопасности Системы безопасности должны побеждать каждый раз, а атакующему достаточно и одной победы. Дастин Дюкс Начальник тюрьмы приглашает экспертов для того, чтобы проверить процедуры безопасности в его учреждении, заботясь о


Директивы #if, #elif, #else, #endif

Из книги Краткое введение в программирование на Bash автора Родригес Гарольд

Директивы #if, #elif, #else, #endif Синтаксис:#if <ограниченное-константное-выражение> [<текст>][#elif <ограниченное-константное-выражение> <текст>][#elif <ограниченное-константное-выражение> <текст>][#else <текст>]#endifДиректива #if совместно с директивами #elif, #else и #endif


if … else … elif … fi

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

if … else … elif … fi Это один из наиболее распространенных операторов. Он позволяет программе принимать решения следующим образом — «если условие верно — делаем одно, если нет — делаем что-то другое». Чтобы эффективно его использовать, сначала нужно научиться пользоваться


Несколько примеров

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Несколько примеров Рассмотрим теперь несколько примеров применения каждого метода.Режим с управлением по запросу (send-driven) — модель «клиент/сервер»Файловая система, последовательные порты, консоли и звуковые платы — все это примеры применения модели «клиент/сервер».


4.3.5. Несколько замечаний

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

4.3.5. Несколько замечаний Для полного понимания процесса создания учетных записей нам нужно познакомиться еще с файлом /etc/login.defs. В нем хранятся настройки, которые будут использоваться при добавлении пользователей. Содержимое файла можно увидеть в листинге 4.1.Листинг 4.1.


11.1.12. Несколько ключей сортировки

Из книги автора

11.1.12. Несколько ключей сортировки При использовании опций +позиция и -k следует быть особенно аккуратным. Если вы внимательно прочитали их описание в табл. 11.1, то должны были отметить такой факт: когда не указана конечная позиция, ключ сортировки считается заканчивающимся


18.3.22. Применение elif

Из книги автора

18.3.22. Применение elif Часть elif оператора if then else применяется для проверки при наличии более чем двух


18.7.5. Обработка файла с помощью проверок условий

Из книги автора

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