Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_указ_по_СПО ч 1 Знакомство с Linux.doc
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
325.12 Кб
Скачать

Селекторы

Оператор 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. Выводы.