/index/10
Меню сайта
Опрос
Какой из курсов Вы считаете наиболее полезным
Всего ответов: 87
Календарь


1998 - 2024 © «МАХАОН»



Каталог статей

Главная » Статьи » Мои статьи

Командные файлы

Условный оператор if

Этот оператор
осуществляет выбор между альтернативными действиями.

Простейшая форма
- if then:

if условие

then

список команд

fi

В общем случае
оператор if имеет структуру:

if условие

then

список команд 1

elif условие

then список команд
2

elif ...

...

else

список команд N

fi

elif сокращенный
вариант от else if.

Если выполняется
условие, т.е. условие истинно, то выполняется список команд, иначе он
пропускается. Обратите внимание, что структура обязательно завершается
служебным словом fi.

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

Командный файл
del:

if [ -d $1 ] (проверяем значение параметра является
каталогом?)

then

echo "Это
каталог. Удалить с файлами (Y)/ Не удалять (N)"

read a

if [ a = "y" ]

then

rm -r - f $1 (-f удаляет файлы без предупреждения)

fi

else

echo "Это файл. Удалить (Y)/ Не удалять (N)"

read a

if [ a = "y" ]

then

rm $1

fi

fi

В данном
командном файле сначала идет проверка, является ли введенное через параметр
имя, каталогом. Если да, то пользователь решает удалять или не удалять этот
каталог. Введенное пользователем значение записывается в переменную а, затем
осуществляется проверка, если значение а = «у», то производится удаление
каталога.

В противном
случае (если введено имя файла) пользователь получает уведомление о том, что
это файл, и сообщает удалять его или нет. Если значение а = «у», то
производится удаление файла.

Создадим
командный файл, который выдает на экран справку о числе файлов, созданных
указанным пользователем (через параметр). Предусмотреть возможность удаления
этих файлов после выдачи сообщения пользователю.

Командный
файлdelusrfile:

find /home -type
f -user $1 > ~/findlist (поиск файлов,
созданных указанным пользователем, запись списка файлов в findlist)

echo количество
файлов, созданных пользователем $1:

wc -l ~/findlist
(подсчет кол-ва строк в файле findlist)

echo удалить эти
файлы? (y - да , n - нет)

read a

if [ a = "y" ]

then

cat ~/findlist | xargs -e rm

fi

(считываются строки
из findlist и передаются команде xargs, назначение которой строить и выполнять
команду, поступившую на вход. Ключ -е позволяет считывать не весь файл целиком,
а построчно. Таким образом, строка, содержащая полное имя файла, считывается из
findlist и передается команде rm, удаляющей этот файл).

 




Разработка Павловой Натальи Сергеевны, 2009 г.
Категория: Мои статьи | Добавил: Ex3pErT (17.06.2010)
Просмотров: 503
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]