Die case-Anweisung und Pattern Matching
Verzweigen Sie übersichtlich anhand vieler Werte. Lernen Sie die case-Anweisung, Glob-Patterns, Übereinstimmungen mit mehreren Patterns und warum sie langen if-elif-Ketten überlegen ist.
Die case-Anweisung und Pattern Matching ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Warum case?
Wenn eine Variable viele Werte annehmen kann, wird eine lange if/elif/elif-Kette unübersichtlich. Die case-Anweisung vergleicht einen Wert mit Mustern und ist deutlich lesbarer.
Grundlegende Syntax
Ein case-Block prüft einen Wert anhand von Mustern. Jedes Muster endet mit ), und der zugehörige Block wird mit ;; beendet. Der gesamte Block endet mit esac.
case "$fruit" in
apple) echo "red";;
banana) echo "yellow";;
esacDer Standardfall
Das Muster *) passt auf alles und dient als allgemeiner Standardfall wie else.
case "$cmd" in
start) echo "starting";;
stop) echo "stopping";;
*) echo "unknown command";;
esacMehrere Muster abgleichen
Verwenden Sie |, um mehrere Muster in einem Zweig abzugleichen.
case "$ans" in
y|Y|yes) echo "Confirmed";;
n|N|no) echo "Cancelled";;
esacGlob-Muster
Muster verwenden Shell-Globbing, keine regulären Ausdrücke: * passt auf jede Zeichenfolge, ? auf ein beliebiges einzelnes Zeichen und [...] auf eine Zeichenklasse.
case "$file" in
*.txt) echo "text file";;
*.jpg|*.png) echo "image";;
esacZeichenbereiche
Muster in eckigen Klammern gleichen Bereiche ab – praktisch, um nach dem ersten Buchstaben oder der ersten Ziffer zu gruppieren.
case "$ch" in
[a-z]) echo "lowercase";;
[0-9]) echo "digit";;
esacEin einfaches Menü
case eignet sich besonders für menügesteuerte Skripte, in denen die Benutzer eine Option auswählen.
read -p "Choice: " opt
case "$opt" in
1) backup;;
2) restore;;
*) echo "Invalid";;
esaccase und if
Verwenden Sie if für komplexe boolesche Bedingungen (Bereiche, Vergleiche, mehrere Variablen). Verwenden Sie case, wenn Sie anhand des Werts oder Musters einer einzelnen Variable verzweigen.
Den Wert in Anführungszeichen setzen
Setzen Sie den geprüften Wert ("$var") in Anführungszeichen, damit leere Werte oder Werte mit Leerzeichen sicher verarbeitet werden.
case "$input" in
"") echo "empty";;
*) echo "got: $input";;
esacFall-Through mit ;;&
Bash unterstützt ;;&, um nach einem Treffer weitere Muster zu prüfen, sodass mehrere Zweige ausgeführt werden können.
case "$f" in
*.tar) echo "tar";;&
*.gz) echo "gzip";;
esacArgumente verteilen
Eine häufige Anwendung aus der Praxis: Verteilen Sie anhand des ersten Skriptarguments auf Unterbefehle, um beispielsweise ein CLI-Tool zu implementieren.
case "$1" in
init) do_init;;
build) do_build;;
*) echo "usage: $0 {init|build}";;
esacKurzer Test
Testen Sie Ihr Verständnis.
Zusammenfassung
Sie haben die case-Anweisung kennengelernt: Vergleichen Sie einen Wert mit Glob-Mustern, beenden Sie Zweige mit ;;, kombinieren Sie Muster mit |, verwenden Sie *) als Standardfall und bevorzugen Sie case gegenüber langen if-elif-Ketten für übersichtliche wert- und argumentbasierte Verzweigungen.
Häufig gestellte Fragen
Ist die Lektion „Die case-Anweisung und Pattern Matching“ kostenlos?
Ja — der vollständige Text von „Die case-Anweisung und Pattern Matching“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Die case-Anweisung und Pattern Matching“?
Verzweigen Sie übersichtlich anhand vieler Werte. Lernen Sie die case-Anweisung, Glob-Patterns, Übereinstimmungen mit mehreren Patterns und warum sie langen if-elif-Ketten überlegen ist. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Die case-Anweisung und Pattern Matching“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Schleifenkonstrukte (for, while)
- Funktionen in Bash-Skripten
- Skriptargumente und Optionen ($@, $#, getopts)
- Die case-Anweisung und Pattern Matching