Добавлен: 20.10.2018
Просмотров: 1778
Скачиваний: 5
СОДЕРЖАНИЕ
Поиск текста в файлах по образцу.
Сценарии в командном интерпретаторе BASH.
Команда test и условные операторы в сценариях
Поиск текста в файлах по образцу
Программные каналы, перенаправление входных и выходных потоков данных
Переменные командного интерпретатора
Командный язык командных интерпретаторов
Сценарии командного интерпретатора и создание собственных команд
Комментарии и командные оболочки
Встроенные переменные сценариев
if a=`expr "$1" -le "$2"`
then echo a=$a code=$?
else echo a=$a code=$?
fi
тогда выполнение fs2 с параметрами fd fd даст a=2 code=0,
а выполнение fs2 с параметрами fd fb даст a=0 code=1.
Пример 3. Использование нескольких вложений условного оператора if.
echo -n "Какую оценку получил на экзамене?: "
read z
if [ $z = 5 ]
then echo Молодец !
elif [ $z = 4 ]
then echo Все равно молодец !
elif [ $z = 3 ]
then echo Все равно
elif [ $z = 2 ]
then echo Плохо
else echo !????
fi
Оператор выбора case
Оператор выбора case имеет следующую структуру:
case строка in
шаблон) список команд;;
шаблон) список команд;;
.
.
*) ...
esac
Здесь case in и esac - служебные слова. Строка (это может быть и один символ) сравнивается с шаблоном. Затем выполняется список команд выбранной строки. Служебное слово esac необходимо для завершения структуры.
Пример 1. Пример уже рассматривался при изучении структуры if, но его нагляднее можно реализовать с помощью структуры case.
echo -n "Какую оценку получил на экзамене?: "
read z
case $z in
5) echo Молодец ! ;;
4) echo Все равно молодец ! ;;
3) echo Все равно;;
2) echo Плохо ;;
*) echo !???? ;;
esac
В конце строк выбора пишется ";;". Для каждого варианта может быть выполнено несколько команд. Если эти команды будут записаны в одну строку, то символ ";" будет использоваться как разделитель команд. Обычно последняя строка выбора имеет шаблон "*", что в структуре case означает "любое значение". Эта строка выбирается, если не произошло совпадение значения переменной (здесь $z) ни с одним из ранее записанных шаблонов, ограниченных скобкой ")". Значения просматриваются в порядке записи.
Пример 2. Реализация меню с помощью команды case. В общем случае на месте отдельных команд могут быть группы команд.
echo Назовите файл, а затем (через пробел) наберите цифру,
echo соответствующую требуемой обработке:
echo 1 - отсортировать
echo 2 - выдать на экран
echo 3 - определить число строк
read x y # x - имя файла, y - что сделать
case $y in
1) sort -r < $x ;;
2) cat < $x ;;
3) wc -l < $x ;;
*) echo "unknow command ! " ;;
esac
Пример 3. Добавление информации со стандартного входа к файлу, указанному первым параметром (если параметр один), либо (если два параметра) из файла, указанного в качестве первого параметра в файл, указанный вторым параметром. Используется стандартная переменная $#, указывающая число параметров при вводе сценария и перенаправление с добавлением в файл, обозначаемое знаком ">>".
case $# in
1) cat >> $1 ;;
2) cat >> $2 < $1 ;;
*) echo "Формат: case4 [откуда] куда" ;;
esac
Лабораторное задание и порядок выполнения работы
Изучить теоретический материал, выполнить рекомендуемые задания с использованием своих файлов и шаблонов.
Выполнить примеры по архивированию и сжатию, составлению сценариев, используя свои переменные, данные и наборы команд.
Составить и выполнить сценарии с использованием встроенных переменных команды test, операторов if и case изменять.
Законспектировать материал по новым командам, входящим в выполненные примеры и задания. Оформить отчет и защитить работу.
Контрольное задание
-
В каталоге var или любом доступном для чтения каталоге найти все файлы, создать их список и поместить в свой каталог в новый файл.
-
Найти подкаталоги выбранного каталога, создать их список и поместить его в свой каталог в новый файл. Файлы заархивировать и сжать одним из известных способов.
-
(Дополнительное задание) Создать текстовый файл aaa.txt с датами в разных форматах, составить сценарий записывающий в файл bbb.txt какой день недели соответствует первой дате из файла aaa.txt соответствующей формату DD.MM.YYYY. (Для этого можно использовать команду date)
Требования к отчету
Отчет должен содержать:
-
Описания нескольких разнотипных сценариев;
-
краткие сведения о работе;
-
материал по новым командам, входящим в выполненные примеры и задания;
-
описание последовательности выполнения основных команд по поиску в файлах по образцу и команд создания архивов с Вашими именами файлов и каталогов выполнить подробно.