Файл: Лабораторная Linux №2.doc

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Операционные системы

Добавлен: 20.10.2018

Просмотров: 1543

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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 изменять.

Законспектировать материал по новым командам, входящим в выполненные примеры и задания. Оформить отчет и защитить работу.

Контрольное задание



  1. В каталоге var или любом доступном для чтения каталоге найти все файлы, создать их список и поместить в свой каталог в новый файл.

  2. Найти подкаталоги выбранного каталога, создать их список и поместить его в свой каталог в новый файл. Файлы заархивировать и сжать одним из известных способов.

  3. (Дополнительное задание) Создать текстовый файл aaa.txt с датами в разных форматах, составить сценарий записывающий в файл bbb.txt какой день недели соответствует первой дате из файла aaa.txt соответствующей формату DD.MM.YYYY. (Для этого можно использовать команду date)

Требования к отчету


Отчет должен содержать:

  1. Описания нескольких разнотипных сценариев;

  2. краткие сведения о работе;

  3. материал по новым командам, входящим в выполненные примеры и задания;

  4. описание последовательности выполнения основных команд по поиску в файлах по образцу и команд создания архивов с Вашими именами файлов и каталогов выполнить подробно.