case
- case – składnia warunkowa wykorzystywana w bash do wykonywania różnych bloków kodu w zależności od dopasowania wartości do wzorca.
- Umożliwia uproszczenie złożonych instrukcji warunkowych typu
if-elif
. - Obecna we wszystkich wersjach bash i innych powłokach POSIX-owych.
Składnia
Dział zatytułowany „Składnia”case WYRAŻENIE in WZORZEC1) KOMENDY ;; WZORZEC2) KOMENDY ;; *) KOMENDY_DOMYŚLNE ;;esac
case
rozpoczyna blok,esac
go kończy (odwrócona formacase
).- Wzorce kończą się średnikiem podwójnym
;;
. - Można używać wielu wzorców oddzielonych
|
.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis | |
---|---|---|
WYRAŻENIE | Zmienna lub tekst dopasowywany do wzorców. | |
WZORZEC | Wzorzec lub zestaw wzorców, np. `start | run` dopasowuje oba przypadki. |
KOMENDY | Instrukcje wykonywane, gdy wzorzec pasuje do wartości. | |
*) | Blok domyślny, jeśli żaden wzorzec nie zostanie dopasowany. |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# Przykład 1: Reakcja na argument wywołania skryptucase "$1" in start) echo "Uruchamianie..." ;; stop) echo "Zatrzymywanie..." ;; restart) echo "Restartowanie..." ;; *) echo "Użycie: $0 {start|stop|restart}" ;;esac
# Przykład 2: Obsługa wielu dni tygodniaread -p "Podaj dzień tygodnia: " dziencase "$dzien" in poniedziałek|wtorek|środa|czwartek|piątek) echo "Dzień roboczy" ;; sobota|niedziela) echo "Weekend" ;; *) echo "Nieznany dzień" ;;esac
case
działa podobnie do switch/case w innych językach programowania.- Wzorce wspierają znaki wieloznaczne (
*
,?
,[]
). - Może być używany w skryptach interaktywnych i automatyzujących logikę wyboru.
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 |
---|---|---|
syntax error near unexpected token | Brak średnika ;; lub esac | Uzupełnij poprawną składnię. |
Brak działania żadnego bloku | Żaden wzorzec nie został dopasowany | Upewnij się, że wartość pasuje do wzorca lub dodaj blok domyślny *) . |
Niepoprawne dopasowanie | Błędna składnia wzorca | Sprawdź, czy wzorzec zawiera właściwą składnię globbing. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- GNU Bash Manual – case – oficjalna dokumentacja.
- Bash Hackers Wiki – case – szczegóły składni i zastosowań.