"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" из командного файла.