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

Як це зробити:

Створення простої функції в Bash:

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

Використовуйте її, викликаючи функцію з параметром:

greet "Світ"  # Вивід: Привіт, Світ!

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

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

add 3 4
echo $?  # Вивід: 7

Зауважте, що $? захоплює значення повернення останньої команди, яке є числовим результатом виконання add.

Поглиблений огляд

У Bash функції є способом структурування коду з самої ранньої її версії. Історично, використання функцій відповідає принципам структурованого програмування, введеним у 1960-х роках для покращення якості коду.

Альтернативи функціям включають включення файлів скриптів (sourcing script files) або використання аліасів, але вони не пропонують такого самого рівня модульності та можливості повторного використання.

Однією з особливостей імплементації в Bash є те, що функції є об’єктами першого класу; в них немає специфічного ключового слова оголошення, як function в інших мовах, хоча function є опціональним в Bash для зручності читання. Сфера дії функції також є цікавою — змінні за замовчуванням є глобальними, якщо їх не оголошено як локальні, що може призвести до неочікуваної поведінки, якщо це не керувати належним чином.

Дивіться також