18.3.15. Проверка на предмет создания каталога
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
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
14.2. Смена корневого каталога
14.2. Смена корневого каталога Хотя в системе имеется один корневой каталог, значение / может меняться для каждого процесса в системе. Это обычно делается для предотвращения доступа к файловой системе со стороны сомнительных процессов (например, демоны ftp, обрабатывающие
14.4. Чтение содержимого каталога
14.4. Чтение содержимого каталога Обычно программам требуется получать список файлов, содержащихся в каталоге. Linux предоставляет ряд функций, позволяющих обрабатывать каталог как абстрактный объект, что дает возможность избежать зависимости программ от точного формата
14.8. Уведомление о смене каталога
14.8. Уведомление о смене каталога Иногда приложения желают получать уведомления об изменении оглавления каталога. Например, диспетчеры файлов могут выводить оглавление каталога в окне и обновлять это окно каждый раз при изменении каталога другими программами. В то время
16.19.1 Модель каталога
16.19.1 Модель каталога Информационная база каталога (Directory Information Base) распределена среди группы баз данных, управляемых агентами обслуживания каталогов (Directory Service Agent — DSA). Пользователи обращаются к каталогам через пользовательский агент каталога (Directory User Agent — DUA). DUA
1.7.3. Структура каталога
1.7.3. Структура каталога На сегодня в каталоге Яндекса 15 разделов первого уровня (рис. 1.16). Помимо привычных, встречающихся и в иных каталогах разделов — Отдых, Бизнес, Культура и иных, в этом каталоге есть уникальный раздел. Он предназначен для детей и называется "Интернет
Информация как феномен современной культуры и как предмет познания
Информация как феномен современной культуры и как предмет познания Любой объект правового регулирования является одновременно, и даже в первую очередь, элементом действительности, компонентом объективной картины мира. Действительность, отличная от природы и культуры,
Меню каталога
Меню каталога Меню каталога обязательно должно быть вертикальным! В ходе многочисленных тестов выяснилось, что горизонтальное меню менее эффективно и вызывает у людей больше трудностей. Кроме того, практика показывает, что подавляющее большинство людей интуитивно ищут
Страница каталога
Страница каталога На самой странице каталога пользователь обязательно должен видеть товары – конкретные предложения о покупке. Чаще всего владельцы интернет-магазинов спрашивают, сколько товаров нужно показывать на странице каталога.Однозначного ответа нет. Это
10.1.30. Обход каталога
10.1.30. Обход каталога Метод класса foreach — это итератор, который последовательно передает в блок каждый элемент каталога. Точно так же ведет себя метод экземпляра each.Dir.foreach("/tmp") { |entry| puts entry }dir = Dir.new("/tmp")dir.each { |entry| puts entry }Оба фрагмента печатают одно и то же (имена всех файлов и
10.10. Создание каталога
10.10. Создание каталога ПроблемаТребуется создать каталог, причем эта операция должна быть переносимой, т.е. в ней не должен использоваться специфичный для конкретной ОС программный интерфейс.РешениеНа большинстве платформ вы сможете использовать системный вызов mkdir,
10.11. Удаление каталога
10.11. Удаление каталога ПроблемаТребуется удалить каталог, причем эта операция должна быть переносимой, т.е. в ней не должен использоваться специфичный для конкретной ОС программный интерфейс.РешениеНа большинстве платформ вы сможете воспользоваться системным вызовом
18.3.6. Проверка текущего каталога
18.3.6. Проверка текущего каталога Некоторые сценарии, реализующие административные задачи, можно выполнять из корневого каталога. Если производится глобальное перемещение файлов или же изменяются права доступа к файлу, несложный тест позволяет уточнить, вовлекается ли в
1.1. Информатика. Предмет информатики. Основные задачи информатики
1.1. Информатика. Предмет информатики. Основные задачи информатики Задачи накопления (хранения), обработки и передачи информации стояли перед человечеством на всех этапах его развития. Каждому этапу соответствовал определенный уровень развития средств информационного
Классы, а не объекты - предмет обсуждения
Классы, а не объекты - предмет обсуждения Какова центральная концепция объектной технологии? Необходимо дважды подумать, прежде чем ответить "объект". Объекты полезны, но в них нет ничего нового.С тех пор, как структуры используются в Cobol, с тех пор, как в Pascal существуют