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 для зручності читання. Сфера дії функції також є цікавою — змінні за замовчуванням є глобальними, якщо їх не оголошено як локальні, що може призвести до неочікуваної поведінки, якщо це не керувати належним чином.
Дивіться також
- Bash manual on Shell Functions: https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html
- Advanced Bash-Scripting Guide: https://tldp.org/LDP/abs/html/functions.html
- “Pro Bash Programming: Scripting the GNU/Linux Shell” для поглиблених концепцій скриптування функцій та практик.