function
- function – konstrukcja składniowa dostępna w powłokach uniksowych (bash, zsh, ksh), służąca do definiowania nazwanych bloków kodu, które można wywoływać wielokrotnie.
- Kluczowa w modularnym programowaniu skryptowym, organizacji logiki, reużywalności kodu.
- Działa zarówno w skryptach, jak i interaktywnie – szczególnie w bash/zsh.
Składnia
Dział zatytułowany „Składnia”function nazwa_funkcji() { komendy}
# lub równoważnie (bash/zsh/posix):nazwa_funkcji() { komendy}
- Parametry funkcji dostępne jako
$1
,$2
, …,$@
,$#
. - Można zwrócić kod wyjścia za pomocą
return
(0–255).
Parametry (wewnątrz funkcji)
Dział zatytułowany „Parametry (wewnątrz funkcji)”Element | Opis |
---|---|
$1 , $2 , … | Argumenty przekazane do funkcji |
$@ | Wszystkie argumenty jako lista (cytowane oddzielnie) |
$* | Wszystkie argumenty jako jeden ciąg |
$# | Liczba argumentów |
return N | Zakończ funkcję z kodem wyjścia N |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Prosta funkcja z argumentempowitaj() { echo "Witaj, $1!"}powitaj "Użytkowniku"
# 2. Funkcja sprawdzająca istnienie plikusprawdz_plik() { if [[ -f "$1" ]]; then echo "Plik istnieje." return 0 else echo "Plik nie istnieje." return 1 fi}
# 3. Pętla z funkcją do przetwarzania listydrukuj_elementy() { for x in "$@"; do echo "-> $x" done}drukuj_elementy a b c
- Pierwsza funkcja wypisuje powitanie z użyciem pierwszego argumentu.
- Druga funkcja sprawdza, czy istnieje plik i zwraca kod wyjścia.
- Trzecia pokazuje iterację po wielu argumentach funkcji.
- Nazwy funkcji nie mogą zawierać spacji ani znaków specjalnych (np.
-
,.
). - Funkcje muszą być zdefiniowane przed wywołaniem (kolejność w skrypcie ma znaczenie).
- W powłoce bash możliwe jest używanie lokalnych zmiennych (
local zmienna
). - Funkcja dziedziczy środowisko zmiennych – zmiany w zmiennych globalnych są trwałe, chyba że użyto
local
. - Można nadpisywać funkcje – ostatnia definicja jest aktywna.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
command not found | Funkcja wywołana przed definicją lub w innym kontekście | Upewnij się, że definicja funkcji pojawia się wcześniej |
syntax error | Błąd w składni nawiasów lub ciała funkcji | Sprawdź poprawność {} , średników, cudzysłowów |
Argumenty nieczytelne | Brak cytowania $@ | Użyj "$@" , aby zachować integralność argumentów ze spacjami |
Linki i źródła
Dział zatytułowany „Linki i źródła”- Bash Reference Manual – Functions – oficjalna dokumentacja bash.
- POSIX shell – Functions – definicja składni zgodnej z POSIX.
- Advanced Bash-Scripting Guide – Functions – praktyczne przykłady.