Условный оператор 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 г.
|