Bash:
Organizacja kodu w funkcje
Jak to zrobić:
Utwórz prostą funkcję w Bashu:
greet() {
echo "Cześć, $1!"
}
Użyj jej, wywołując funkcję z parametrem:
greet "Świecie" # Wyjście: Cześć, Świecie!
Funkcje mogą zwracać wartości za pomocą return
dla numerycznych kodów statusu (nie do faktycznego zwracania danych):
add() {
return $(($1 + $2))
}
add 3 4
echo $? # Wyjście: 7
Zwróć uwagę, że $?
przechwytuje wartość zwróconą przez ostatnie polecenie, którą jest numeryczny wynik funkcji add
.
Szczegółowe zagłębienie
W Bashu, funkcje służą do kompartmentalizacji kodu od wczesnych wersji. Historycznie, używanie funkcji jest zgodne z zasadami programowania strukturalnego wprowadzonymi w latach 60. aby poprawić jakość kodu.
Alternatywami dla funkcji mogą być dołączanie plików skryptów lub używanie aliasów, ale nie oferują one tego samego poziomu modularności i możliwości ponownego wykorzystania.
Godnym uwagi szczegółem implementacji w Bashu jest to, że funkcje są obywatelami pierwszej klasy; nie mają specjalnego słowa kluczowego deklaracji takiego jak function
w innych językach, chociaż użycie function
w Bashu jest opcjonalne dla czytelności. Zasięg funkcji również jest ciekawy – zmienne są domyślnie globalne, chyba że zostaną zadeklarowane jako lokalne, co może prowadzić do nieoczekiwanego zachowania, jeśli nie zostanie to odpowiednio zarządzane.
Zobacz również
- Podręcznik Bash na temat Funkcji Powłoki: https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html
- Zaawansowany przewodnik po skryptach w Bashu: https://tldp.org/LDP/abs/html/functions.html
- “Pro Bash Programming: Scripting the GNU/Linux Shell” dla pogłębienia wiedzy na temat konceptów i praktyk skryptowania funkcji.