Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ПСРВ.doc
Скачиваний:
26
Добавлен:
12.02.2016
Размер:
1.6 Mб
Скачать

2. Упражнения

УПРАЖНЕНИЕ 2.1.

var=abcd

xy=$var+4

xyz=${xy}4

var2=’ab c de’

y=$var2-5

print $var $xy $xyz $y

Вместо команды print в равной мере можно использовать команду echo.

read r t y

1 2 3 4

print $r $t $y

print $y

УПРАЖНЕНИЕ 2.2.

set --

print $#

set a b c

print $#

print $@ $*

print $0

print $?

print $$

ls abc

print $?

УПРАЖНЕНИЕ 2.3.

Прокомментируйте результат в отчете.

print $(date)

print $(ls)

cd /home/g(номер вашей группы)

ls

rm d[!i]*; ls

rm e?; ls

УПРАЖНЕНИЕ 2.4.

Выполнить и записать в отчет результаты выполнения следующих команд:

test 3 -gt 2 && use ls

test 3 -lt 2 && use ls

test 3 -lt 2 || use ls

test ab3 = ab2 || use ls

test ab3 != ab2 || use ls

составить и проверить пример для условия -r file.

УПРАЖНЕНИЕ 2.5.

use expr

x=50

y=40

a=$(expr $x + $y); print $a

a=$(expr $x / $y); print $a

a=$(expr $x - $y); print $a

a=$(expr $x ‘*’ $y); print $a

3. Содержание отчёта

  1. Номер практической работы.

  2. Название и цель работы.

  3. Краткое описание команд.

  4. Результаты выполнения упражнений 2.1-2.5.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №9

Программирование сценариев для интерпретатора shell

Цель – изучить технологию программирования сценариев

1. Команды, работающие с символьными файлами.

1.1. КОМАНДА sort

sort [-o name] [-bdfinru] file...

Команда сортирует строки всех указанных файлов и сливает их в один файл.

-o name - имя выходного файла, который должен быть использован для записи результатов сортировки (по умолчанию используется стандартное устройство вывода).

Опции (выборочно):

-b - игнорировать лидирующие пробелы;

-d - сортировать в алфавитном порядке;

-f - преобразовывать символы верхнего регистра в символы нижнего;

-i - игнорировать непечатные символы;

-n - интерпретировать поле как число, сортировать в числовом порядке;

-r - инвертировать порядок сортировки; file ... - входные файлы, которые должны быть отсортированы.

Выполнить:

cd..;ls|sort -d

ls|sort -r

Прокомментировать результаты в отчете.

1.2. КОМАНДА find («поиск файлов»)

find path... [operand_expression]

path - путь к директорию

Команда осуществляет сканирование директория (директориев) с выборкой имен файлов которые удовлетворяют условию true, для поля operand_expression. Если это поле отсутствует, то на стандартный выход выводятся имена всех файлов обнаруженных командой, включая файлы обнаруженные в субдиректориях.

Поле operand_expression (выборочно):

-user uname

(POSIX) True если файл принадлежит пользователю с именем uname .

-group gname

(POSIX) true если файл принадлежит группе пользователей с групповым именем gname

-name pattern

(POSIX) True если базовое имя файла совпадает с образом pattern.

Поле pattern стоится из специальных символов имеющих следующие значения:

? - любой символ кроме <newline>;

* - любая строка, включая, пустую строку;

[bracet-expr] - выражение в квадратных скобках - определяет область возможных подстановок для одного символа. В скобках может быть также использован символ «!», который трактуется как операция логического дополнения. (Подробней см. HELP, пункт «манипуляция файлами»):

-exec utility_name [argument...] ;

(POSIX) True, если выполняемая утилита utility_name возвращает нулевой статус. Строка должна заканчиваться символом «;».

Аргумент утилиты может содержать символы {} или @ которые при исполнении заменяются полным текущим именем файла

ВЫПОЛНИТЬ:

find . -user g/номер вашей учебной группы/

find /bin -name ‘[a-e]*’

find /bin -exec print 1;

find /bin -exec print @;

find /bin -exec echo {};

Прокомментировать результаты в отчете.

1.3. КОММЕНТАРИЙ

Строки файла shell-сценария, которые начинаются с символа «#» рассматриваются как комментарий.

СПЕЦИАЛЬНЫЙ КОММЕНТАРИЙ

1) shell сценарий может иметь встроенные сообщения, которые выводятся командой use. use - утилита сканирует каждую строку от начала shell - сценария, просматривая все строки начинающиеся с символа «#». На стандартное устройство выводятся все строки комментария начинающиеся со строки #ifdef __USAGE и ограниченные строкой #endif или любым символом отличным от #.

Пример:

#ifdef __USAGE

#proba 1

#proba 2

#proba 3

#endif

2) Строка комментария вида #! /bin/sh вызывает для исполнения файла сценария дополнительную копию shell (subshell). Обычно эта строк является первой в файле сценария. Использование subshell увеличивает надежность работы при наличии ошибок. При использовании subshell файл сценария должен быть завершен командой exit 0.

КОМАНДА exit [n]

Команда завершает текущий интерпретатор shell и формирует выходной статус, определенный числом n. Если число не указано, то устанавливается равным значению статуса последней выполненной команды.