Bash:
Организация кода в функции

Как это сделать:

Создайте простую функцию в Bash:

greet() {
  echo "Привет, $1!"
}

Используйте её, вызвав функцию с параметром:

greet "Мир"  # Вывод: Привет, Мир!

Функции могут возвращать значения с помощью return для числовых кодов состояния (но не для возврата фактических данных):

add() {
  return $(($1 + $2))
}

add 3 4
echo $?  # Вывод: 7

Обратите внимание, что $? захватывает возвращаемое значение последней команды, которое является числовым результатом add.

Подробнее

В Bash функции служат способом компартментализации кода с самых ранних версий. Исторически, использование функций соответствует принципам структурного программирования, введенным в 1960-х годах для повышения качества кода.

Альтернативы функциям включают подключение файлов скриптов или использование псевдонимов, но они не предлагают такого же уровня модульности и переиспользования.

Заметной деталью реализации в Bash является то, что функции являются объектами первого класса; у них нет специфического ключевого слова для объявления, как function в других языках, хотя function в Bash допускается для улучшения читаемости. Область видимости функций также интересна — переменные по умолчанию являются глобальными, если не объявлены как локальные, что может привести к неожиданному поведению, если это не управлять должным образом.

См. также