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

if [ "`ls -A $DIRECTORY/`"="" ] ; then

# если строка пуста, каталог пуст

echo "$DIRECTORY is indeed empty" else

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

echo "$DIRECTORY” is not empty"

fi

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

$ pg ifdirec2

#!/bin/sh

# ifdirec2

DIRECTORY=$1

if [ -z "`ls -A $DIRECTORY`" ] then

echo "$DIRECTORY is indeed empty" else

echo "$DIRECTORY is not empty"

fi

18.3.14. Применение команды null

Обычно при проведении проверки условий выполняются части then и else. Иногда независимо от того, истинно или ложно условие, нет необходимости переходить к действиям.

К сожалению, нельзя оставлять незаполненными части оператора if — здесь должен находиться какой‑либо оператор. Чтобы разрешить это затруднение, интерпретатор shell поддерживает команду null ':'. Команда null всегда возвращает значение "истина", что в данном случае нас удовлетворяет. Возвращаясь к предыдущему примеру, заметим, что если каталог пуст, команды можно размещать только в части then.

$ pg ifdirectory

#!/bin/sh

# ifdirectory

DIRECTORY=$1

if [ "`ls -A $DIRECTORY`"="" ]

then

echo "$DIRECTORY is indeed empty"

else : # не выполняет ничего

fi

18.3.15. Проверка на предмет создания каталога

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

if [ "$DIRECTORY" = "" ]

Вместо предложенного варианта можно воспользоваться общим случаем проверки параметров:

if [ $# -lt 1 ]

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

Пользователь получает запрос, действительно ли нужно создавать каталог. Если он вводит символ, отличный от Y или у, выполняется команда null, в результате чего не предпринимается никаких действий. Каталог создан.

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

$ pg ifmkdir

#!/bin/sh

#ifmkdir

#параметр передается как $1, но заново присваивается переменной DIRECTORY DIRECTORY=$1

#является ли строка пустой ??

if [ "$DIRECTORY"="" ]

then

echo "Usage: `basename $0` directory to create" >&2

exit 1

fi

if [ -d $DIRECTORY ] then :

# ничего не выполняет

else

echo "The directory does exist"

echo -n "Create it now? [y..n] :"

read ANS

if [ "$ANS"="y" ] || [ "$ANS"="Y" ]

then

echo "creating now"

# создайте каталог и перешлите все данные вывода в /dev/null mkdir $DIRECTORY >/dev/null 2>&1 if [ $? != 0 ]; then

echo "Errors creating the directory $DIRECTORY" >&2

exit 1

fi

else :

# ничего не выполняет

fi

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

$ ifmkdir dt

The directory does exist Create it now? [y..n]: у

creating now

18.3.16. Другие возможности копирования

С помощью команды cp сценарию передается два параметра (они должны содержать имена файлов). Затем системная команда cp копирует значение параметра $1 в параметр $2, а поток вывода перенаправляется в /dev/null. Если команда выполнилась успешно, никаких действий не предпринимается, т. е. применяется команда null.

С другой стороны, если в процессе выполнения команды произошел сбой, об этом следует узнать до завершения сценария.

$ pg ifcp2

#!/bin/sh

#ifcp2

if cp $1 $2 > /dev/null 2>&1

# успешно, ничего делать не надо

then :

else

# плохо, покажем пользователю, какие файлы здесь были.

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

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

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

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

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

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

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

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

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