Instrukcja case i dopasowywanie wzorców
Sprawnie rozgałęziaj wykonanie na podstawie wielu wartości. Poznaj instrukcję case, wzorce glob, dopasowywanie wielu wzorców oraz przewagę tego rozwiązania nad długimi łańcuchami if-elif.
Instrukcja case i dopasowywanie wzorców to bezpłatna lekcja Linux Command Line & Bash Scripting Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Command Line & Bash Scripting Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Po co case
Gdy zmienna może przyjmować wiele wartości, długa konstrukcja if/elif/elif staje się nieczytelna. Instrukcja case porównuje wartość ze wzorcami i jest znacznie bardziej przejrzysta.
Podstawowa składnia
Blok case porównuje wartość ze wzorcami, z których każdy kończy się znakiem ), a jego ciało kończy się przez ;;. Cały blok kończy się słowem esac.
case "$fruit" in
apple) echo "red";;
banana) echo "yellow";;
esacPrzypadek domyślny
Wzorzec *) pasuje do wszystkiego i pełni funkcję domyślnego przypadku typu catch-all, podobnie jak else.
case "$cmd" in
start) echo "starting";;
stop) echo "stopping";;
*) echo "unknown command";;
esacDopasowywanie wielu wzorców
Użyj |, aby dopasować kilka wzorców w jednej gałęzi.
case "$ans" in
y|Y|yes) echo "Confirmed";;
n|N|no) echo "Cancelled";;
esacWzorce glob
Wzorce używają mechanizmu glob powłoki, a nie wyrażeń regularnych: * pasuje do dowolnego ciągu znaków, ? do dowolnego pojedynczego znaku, a [...] definiuje klasę znaków.
case "$file" in
*.txt) echo "text file";;
*.jpg|*.png) echo "image";;
esacZakresy znaków
Wzorce w nawiasach kwadratowych dopasowują zakresy, co jest przydatne przy grupowaniu według pierwszej litery lub cyfry.
case "$ch" in
[a-z]) echo "lowercase";;
[0-9]) echo "digit";;
esacProste menu
case doskonale sprawdza się w skryptach sterowanych menu, w których użytkownik wybiera opcję.
read -p "Choice: " opt
case "$opt" in
1) backup;;
2) restore;;
*) echo "Invalid";;
esaccase a if
Używaj if do złożonych warunków logicznych (zakresów, porównań i wielu zmiennych). Używaj case, gdy rozgałęzienie zależy od wartości lub wzorca jednej zmiennej.
Cytowanie wartości
Ujmij sprawdzaną wartość ("$var") w cudzysłowy, aby bezpiecznie obsługiwać wartości puste lub zawierające spacje.
case "$input" in
"") echo "empty";;
*) echo "got: $input";;
esacPrzechodzenie dalej za pomocą ;;&
Bash obsługuje ;;&, które po dopasowaniu pozwala kontynuować sprawdzanie kolejnych wzorców, dzięki czemu może zostać wykonanych wiele gałęzi.
case "$f" in
*.tar) echo "tar";;&
*.gz) echo "gzip";;
esacRozdzielanie argumentów
Częste zastosowanie w praktyce: rozdzielanie działania na podstawie pierwszego argumentu skryptu w celu implementacji podpoleceń, podobnie jak w narzędziu CLI.
case "$1" in
init) do_init;;
build) do_build;;
*) echo "usage: $0 {init|build}";;
esacSzybki test
Sprawdź, czy rozumiesz ten temat.
Podsumowanie
Poznałeś(-aś) instrukcję case: porównywanie wartości ze wzorcami glob, kończenie gałęzi za pomocą ;;, łączenie wzorców za pomocą |, używanie *) jako przypadku domyślnego oraz wybieranie case zamiast długich łańcuchów if-elif przy przełączaniu według wartości i rozdzielaniu argumentów.
Ucz się Bash dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 22
- Lekcje
- 88
Często zadawane pytania
Czy lekcja „Instrukcja case i dopasowywanie wzorców” jest bezpłatna?
Tak — pełny tekst „Instrukcja case i dopasowywanie wzorców” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Command Line & Bash Scripting Mastery, przejdź na CoddyKit PRO. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Instrukcja case i dopasowywanie wzorców”?
Sprawnie rozgałęziaj wykonanie na podstawie wielu wartości. Poznaj instrukcję case, wzorce glob, dopasowywanie wielu wzorców oraz przewagę tego rozwiązania nad długimi łańcuchami if-elif. Ćwiczysz Linux Command Line & Bash Scripting Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Command Line & Bash Scripting Mastery?
Nie wymagamy żadnego doświadczenia. Linux Command Line & Bash Scripting Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Instrukcja case i dopasowywanie wzorców”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Command Line & Bash Scripting Mastery?
Tak. Każda lekcja Linux Command Line & Bash Scripting Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konstrukcje pętli (for, while)
- Funkcje w skryptach Bash
- Argumenty i opcje skryptów ($@, $#, getopts)
- Instrukcja case i dopasowywanie wzorców