Лекция: Селекторы

Оператор case предоставляет удобную форму для множественного выбора:

case слово in

шаблон1)

command

.. .

;;

шаблон2)

command

.. .

;;

.. .

*)

command

.. .

;;

Значение слова сравнивается с шаблонами, начиная с первого. Если совпадение найдено, то выполняются команды соответствующего раздела. Шаблоны допускают наличие масок. Последний раздел с шаблоном *) аналогичен разделу default в синтаксисе оператора switct языка Си.

Ввод

Присвоение значений переменных может осуществляться явно или с помощью некоторой программы. Команда read предоставляет возможность присвоить переменным значения, которые считываются из стандартного потока ввода. Это может быть строка, введенная пользователем или считанная из файла в случае перенаправления потока. Если число слов в строке превышает число переменных, то в последней переменной будут сохранены все оставшиеся слова.

Пример:

Текст скрипта: #!/bin/bash echo «input: » while read var1 var2 var3 do echo var1=$var1 echo var2=$var2 echo var3=$var3 echo «input: » done Запуск скрипта: input: пример работы команды read var1=пример var2=работы var3=команды read input: еще пример var1=еще var2=пример var3= input: ^D

Варианты заданий

Для демонстрации работы скриптов, позаботьтесь о создании в рабочем каталоге необходимых демонстрационных каталогов и файлов; ххх – первые буквы фамилии автора; каждый скрипт начинается с выдачи заголовка с информацией об авторе; каждый скрипт предусматривает ввод аргументов, как с помощью параметров, так и с клавиатуры в случае отсутствия параметров; если параметр некорректный – выдать сообщение и выйти с кодом ошибки; код ошибки – последние 2 цифры зачетки.

 

1. Напишите скрипт, который выводит список файлов, находящихся в текущем каталоге, в строку, а затем в столбик.

2. Напишите скрипт, который ищет в каталоге имена файлов, которые оканчиваются на.ххх и выводит результаты в файл ххххх.list, а затем на терминал.

3. Напишите скрипт, который в каталоге находит из всех файлов строчки, содержащие слово ххх. (2 параметра – имя каталога и ххх)

4. Напишите скрипт, который проверяет первый аргумент, и если он является обычным файлом, выводит сначала первые 5 строк, затем последние 5 строк.

5. Не используя команду ls, напишите скрипт, который выводит список файлов, расположенных в текущем каталоге. Используйте оператор for.

6. Напишите скрипт, который выводит список аргументов, с которыми он был запущен. Если имя аргумент совпадает с именем файла или подкаталога из текущего каталога – выдать это имя сообщение, иначе – записать его в файл ххх.lst.

Контрольные вопросы

1. Что собой представляет shell-программа?

2. Что собой представляет shell-команда?

3. Что собой представляет shell-язык?

4. Дайте определение командного файла.

5. Какие свойства оболочки показались Вам наиболее полезными и почему?

6. Объясните, в чем разница между циклами:

for i in * for i in $*

Содержание отчета

1. Тексты скриптов, согласно варианта.

2. Результаты работы скриптов.

3. Ответы на контрольные вопросы.

4. Выводы.

 

 

еще рефераты
Еще работы по информатике