Условный оператор 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, удаляющей этот файл).