Intensiv DevOps-uddannelse · Lektion

case-sætningen og mønstergenkendelse

Forgren programmet overskueligt ud fra mange værdier. Lær case-sætningen, glob-mønstre, matchning af flere mønstre, og hvorfor det er bedre end lange if-elif-kæder.

Lektion 4 af 413 trin

case-sætningen og mønstergenkendelse er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvorfor case?

Når en variabel kan have mange værdier, bliver en lang kæde af if/elif/elif hurtigt rodet. case-sætningen sammenholder en værdi med mønstre og er langt mere læsevenlig.

Grundlæggende syntaks

En case-blok tester en værdi mod mønstre, der hver afsluttes med ), og en krop, der afsluttes med ;;. Hele blokken afsluttes med esac.

case "$fruit" in
  apple) echo "red";;
  banana) echo "yellow";;
esac

Standardtilfældet

Mønsteret *) matcher alt og fungerer som en standard, der fanger alt, ligesom else.

case "$cmd" in
  start) echo "starting";;
  stop) echo "stopping";;
  *) echo "unknown command";;
esac

Match flere mønstre

Brug | til at matche flere mønstre i samme gren.

case "$ans" in
  y|Y|yes) echo "Confirmed";;
  n|N|no) echo "Cancelled";;
esac

Glob-mønstre

Mønstre bruger shell-globbing, ikke regulære udtryk: * matcher enhver tekststreng, ? ethvert enkelt tegn, og [...] en tegnklasse.

case "$file" in
  *.txt) echo "text file";;
  *.jpg|*.png) echo "image";;
esac

Tegnområder

Kantede parentesmønstre matcher områder, hvilket er praktisk til gruppering efter første bogstav eller ciffer.

case "$ch" in
  [a-z]) echo "lowercase";;
  [0-9]) echo "digit";;
esac

En enkel menu

case er særligt velegnet i menustyrede scripts, hvor brugeren vælger en indstilling.

read -p "Choice: " opt
case "$opt" in
  1) backup;;
  2) restore;;
  *) echo "Invalid";;
esac

case kontra if

Brug if til komplekse booleske betingelser (intervaller, sammenligninger, flere variable). Brug case, når du forgrener efter værdien eller mønsteret for en enkelt variabel.

Sæt værdien i anførselstegn

Sæt den testede værdi ("$var") i anførselstegn, så tomme værdier eller værdier med mellemrum behandles sikkert.

case "$input" in
  "") echo "empty";;
  *) echo "got: $input";;
esac

Gennemfald med ;;&

Bash understøtter ;;& til at fortsætte testen af senere mønstre efter et match, så flere grene kan aktiveres.

case "$f" in
  *.tar) echo "tar";;&
  *.gz) echo "gzip";;
esac

Argumentfordeling

En almindelig anvendelse i praksis er at fordele efter det første scriptargument for at implementere underkommandoer som i et CLI-værktøj.

case "$1" in
  init) do_init;;
  build) do_build;;
  *) echo "usage: $0 {init|build}";;
esac

Hurtigt tjek

Test din forståelse.

Opsummering

Du har lært case-sætningen: match en værdi mod glob-mønstre, afslut grene med ;;, kombiner mønstre med |, brug *) som standard, og foretræk case frem for lange if-elif-kæder ved ren værdibaseret forgrening og argumentfordeling.

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “case-sætningen og mønstergenkendelse” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “case-sætningen og mønstergenkendelse”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “case-sætningen og mønstergenkendelse”?

Forgren programmet overskueligt ud fra mange værdier. Lær case-sætningen, glob-mønstre, matchning af flere mønstre, og hvorfor det er bedre end lange if-elif-kæder. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “case-sætningen og mønstergenkendelse”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Løkker (for, while)
  2. Funktioner i Bash-scripts
  3. Scriptargumenter og indstillinger ($@, $#, getopts)
  4. case-sætningen og mønstergenkendelse
← Tilbage til Intensiv DevOps-uddannelse