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

echo "`'basename $0`: ERROR failed to copy $1 to $2"

exit 1

fi

Выполнение сценария при отсутствии ошибки, связанной с командой ср:

$ ifср2 myfile.lex myfile.lex.bak

Сценарий выполняется при наличии ошибок в команде ср:

$ ifcp2 myfile.lexx myfile.lex.bak

ifcp2: ERROR failed to copy myfile.lexx myfile.lex.bak

В следующем примере для сортировки файла под именем accounts.qtr применяется команда sort.

Результаты вывода направляются в системную корзину. Но кому интересно видеть на экране 300 отсортированных строк? Если сортировка прошла успешно, не нужно предпринимать никаких действий; если при выполнении команды имелись сбои, следует сообщить об этом пользователю.

$ pg ifsort

#!/bin/sh

# ifsort

if sort accounts.qtr > /dev/null

# отсортировано. Прекрасно

then :

else

# лучше сообщим об этом пользователю

echo "`basename $0`: Oops..errors could not sort accounts.qtr"

18.3.17. Применение нескольких операторов if

Операторы if можно вкладывать; при этом нужно следить, чтобы каждому ключевому слову if соответствовало слово fi.

18.3.18. Проверка и установка переменных среды

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

$ pg ifseted

#!/bin/sh

#ifseted

#установлена ли переменная EDITOR ?

if [ -z $EDITOR ] ; then

echo "Your EDITOR environment ls not set"

echo "2 will assume you want to use vi..OK"

echo -n "Do you wish to change it now? [y..n] :"

read ANS

# проверка верхнего или нижнего регистра для 'у'

if [ "$ANS"="у" ] || [ "$ANS"="Y" ]; then

echo "enter your editor type :"

read EDITOR

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

#если переменная EDITOR не установлена, ей не присвоено значение,

#тогда присвоим ей значение vi

echo "No, editor entered, using vi as default"

EDITOR=vi; export EDITOR

fi

# берется значение и присваивается переменной EDITOR

EDITOR=$EDITOR

export EDITOR

echo "setting $EDITOR"

fi

else

# пользователь

echo "Using vi as the default editor"

EDITOR=vi; export EDITOR

fi

Рассмотрим, как работает приведенный сценарий. Сначала проверим, установлена ли эта переменная. Если это так, появляется сообщение, что редактор vi применяется как редактор, заданный по умолчанию. Затем vi устанавливается в качестве редактора, и сценарий завершается.

Если редактор vi не установлен, пользователю поступает запрос, следует ли установить это значение. Проверка выполняется независимо от регистра, в котором находится символ у. Если пользователь не вводит значения, отличные от у или у, сценарий завершается.

На данном этапе пользователю предлагается ввести тип редактора. Затем выполняется проверка, не установлен ли данный редактор, а также уточняется, не нажимал ли пользователь во время проверки $editor ="" клавишу [Return]. Действительно эта проверка реализована лучше, чем -z $editor, но оба этих метода приводятся лишь в качестве иллюстрации. Если результаты проверки будут отрицательны, на экран выводится сообщение, что применяется редактор vi, причем значение vi присваивается переменной editor.

Если пользователь вводит имя для переменной editor, происходит присвоение и экспорт этого имени.

18.3.19. Проверка кода завершения последней команды

До сих пор каталог создавался путем передачи названия каталога в сценарий. Затем сценарий запрашивал пользователя, создан ли каталог. В следующем примере создается каталог, и все файлы *.txt копируются из текущего каталога в новый каталог. В приведенном сценарии с помощью кода завершения последней команды проверяется успешность выполнения каждой из команд. Если результаты выполнения команд неудовлетворительны, пользователю направляется соответствующее сообщение.

$ pg ifmkd±r2

#!/bin/sh

#ifmkdir2

DIR_NAME=testdirec

#где мы находимся?

THERE=`pwd`

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

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

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

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

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

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

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

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

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