Смекни!
smekni.com

Программирование на Shell (стр. 5 из 5)

"some more"), пока не будет введено "5". После этого выдается "enough" и команда

"break" прекращает выполнение цикла.

4.7. Пустой оператор

Пустой оператор имеет формат

:

Ничего не делает. Возвращает значение "0".".

4.8. Функции в shell

Функция позволяет подготовить список команд shell для последующего выполнения.

Описание функции имеет вид:

имя()

{

список команд

}

после чего обращение к функции происходит по имени. При выполнении функции не

создается нового процесса. Она выполняется в среде соответствующего процесса.

Аргументы функции становятся ее позиционными параметрами; имя функции - ее

нулевой параметр. Прервать выполнение функции можно оператором "return [n]", где

(необязательное) "n" - код возврата.

4.9. Обработка прерываний ("trap")

Бывает необходимо защитить выполнение программы от прерывания.

Наиболее часто приходится встречаться со следующими прерываниями,

соответствующими сигналам:

0выход из интерпретатора,

1отбой (отключение удаленного абонента),

2прерывание от <Del>,

9уничтожение (не перехватывается),

15окончание выполнения.

Для защиты от прерываний существует команда "trap", имеющая формат:

trap 'список команд' сигналы

Если в системе возникнут прерывания, чьи сигналы перечислены через пробел в

"сигналы", то будет выполнен "список команд", после чего (если в списке команд

не была выполнена команда "exit") управление вернется в точку прерывания и

продолжится выполнение командного файла.

Например, если перед прекращением по прерываниям выполнения какого то командного

файла необходимо удалить файлы в "/tmp", то это может быть выполнено командой

"trap":

tarp 'rm /tmp/* ; exit 1' 1 2 15

которая предшествует прочим командам файла. Здесь, после удаления файлов будет

осуществлен выход "exit" из командного файла.