Написание хорошо структурированных программ требует возможности соз- дания подпрограмм. В оболочке Bash это реализуется с помощью функций, представляющих собой именованные блоки кода (пример 10.42). При опре- делении функции в оболочке (даже просто в командной строке) ее можно вызвать по имени.
Пример 10.42. Синтаксис функции
function имя()
{
команды
}
Код функции описывают в начале сценария до первого вызова функции. Для вызова функции достаточно просто указать ее имя.
Для демонстрации использования функций оболочки модифицируем про- грамму if.sh (см. примеры 10.27, 10.29, 10.31). Измененный код сценария if.sh представлен в примере 10.43, а результат его работы — в примере 10.44.
-rw-r--r-- 1 root root 2033 Oct 19 23:24 /etc/passwd
Для передачи аргументов в функцию их указывают после имени функции, разделяя пробелами. В теле функции обращение к переданным аргументам производится с помощью позиционных параметров.
Модификация if.sh, с передачей аргументов в функцию, показана в приме- ре 10.45, а результат работы — в примере 10.46.