Linux Command Line & Bash Scripting Mastery · Lekcja

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.

Lekcja 4 z 413 kroki

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";;
esac

Przypadek 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";;
esac

Dopasowywanie 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";;
esac

Wzorce 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";;
esac

Zakresy 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";;
esac

Proste 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";;
esac

case 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";;
esac

Przechodzenie 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";;
esac

Rozdzielanie 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}";;
esac

Szybki 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.

Bezpłatny start

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

  1. Konstrukcje pętli (for, while)
  2. Funkcje w skryptach Bash
  3. Argumenty i opcje skryptów ($@, $#, getopts)
  4. Instrukcja case i dopasowywanie wzorców
← Powrót do Linux Command Line & Bash Scripting Mastery