DevOps-bootcamp · leksjon

case-setningen og mønstergjenkjenning

Lag ryddige forgreininger basert på mange verdier. Lær case-setningen, glob-mønstre, treff på flere mønstre og hvorfor dette er bedre enn lange if-elif-kjeder.

Leksjon 4 av 413 trinn

case-setningen og mønstergjenkjenning er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hvorfor case?

Når en variabel kan ha mange verdier, blir en lang if/elif/elif-kjede lite oversiktlig. case-setningen sammenligner en verdi med mønstre og er langt mer lesbar.

Grunnleggende syntaks

En case-blokk tester en verdi mot mønstre, der hvert mønster avsluttes med ) og innholdet avsluttes med ;;. Hele blokken avsluttes med esac.

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

Standardtilfellet

Mønsteret *) samsvarer med alt og fungerer som et standardalternativ som else.

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

Samsvare med flere mønstre

Bruk | for å samsvare med 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 bruker shell-globbing, ikke regulære uttrykk: * samsvarer med en vilkårlig tekststreng, ? med ett vilkårlig tegn, og [...] med en tegnklasse.

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

Tegnintervaller

Klammermønstre samsvarer med intervaller, noe som er nyttig for gruppering etter første bokstav eller første siffer.

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

En enkel meny

case er spesielt nyttig i menydrevne skript der brukeren velger et alternativ.

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

case kontra if

Bruk if for komplekse boolske betingelser (intervaller, sammenligninger, flere variabler). Bruk case når du forgrener basert på verdien eller mønsteret til én enkelt variabel.

Sitere verdien

Inneslutt verdien som testes, i anførselstegn ("$var"), slik at tomme verdier eller verdier som inneholder mellomrom, håndteres trygt.

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

Gjennomfall med ;;&

Bash støtter ;;& for å fortsette testingen av senere mønstre etter et treff, slik at flere grener kan aktiveres.

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

Argumentdistribusjon

En vanlig bruk i praksis er å fordele basert på det første skriptargumentet for å implementere underkommandoer, slik et CLI-verktøy gjør.

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

Hurtigsjekk

Test forståelsen din.

Oppsummering

Du har lært om case-setningen: sammenlign en verdi med glob-mønstre, avslutt grener med ;;, kombiner mønstre med |, bruk *) som standard, og foretrekk case fremfor lange if-elif-kjeder for ryddig verdibasert forgrening og argumentdistribusjon.

Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «case-setningen og mønstergjenkjenning» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «case-setningen og mønstergjenkjenning», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «case-setningen og mønstergjenkjenning»?

Lag ryddige forgreininger basert på mange verdier. Lær case-setningen, glob-mønstre, treff på flere mønstre og hvorfor dette er bedre enn lange if-elif-kjeder. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «case-setningen og mønstergjenkjenning»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Løkker (for, while)
  2. Funksjoner i Bash-skript
  3. Skriptargumenter og alternativer ($@, $#, getopts)
  4. case-setningen og mønstergjenkjenning
← Tilbake til DevOps-bootcamp