DevOps-bootcamp · Lektion

case-satsen och mönstermatchning

Skapa tydliga grenar för många värden. Lär dig case-satsen, globmönster, matchning med flera mönster och varför detta är bättre än långa if-elif-kedjor.

Lektion 4 av 413 steg

case-satsen och mönstermatchning är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Varför case?

När en variabel kan ha många värden blir en lång kedja med if/elif/elif snabbt svåröverskådlig. case-satsen matchar ett värde mot mönster och är mycket mer lättläst.

Grundläggande syntax

Ett case-block testar ett värde mot mönster. Varje gren avslutas med ) och dess innehåll avslutas med ;;. Hela blocket avslutas med esac.

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

Standardfallet

Mönstret *) matchar vad som helst och fungerar som en standardgren, ungefär som else.

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

Matcha flera mönster

Använd | för att matcha flera mönster i samma gren.

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

Globmönster

Mönster använder skalets globbning, inte reguljära uttryck: * matchar valfri sträng, ? ett valfritt enskilt tecken och [...] en teckenklass.

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

Teckenintervall

Hakparentesmönster matchar intervall, vilket är praktiskt när ni vill gruppera efter första bokstaven eller siffran.

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

En enkel meny

case passar utmärkt i skript som styrs av menyer där användaren väljer ett alternativ.

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

case jämfört med if

Använd if för komplexa booleska villkor (intervall, jämförelser, flera variabler). Använd case när ni förgrenar utifrån värdet eller mönstret för en enda variabel.

Citera värdet

Citera värdet som testas ("$var") så att tomma värden eller värden som innehåller blanksteg hanteras säkert.

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

Fortsättning med ;;&

Bash stöder ;;& för att fortsätta testa senare mönster efter en matchning, vilket gör att flera grenar kan köras.

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

Argumentstyrning

En vanlig praktisk användning är att styra utifrån det första skriptargumentet för att implementera underkommandon, som i ett CLI-verktyg.

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

Snabbtest

Testa er förståelse.

Sammanfattning

Ni har lärt er case-satsen: matcha ett värde mot globmönster, avsluta grenar med ;;, kombinera mönster med |, använd *) som standard och föredra case framför långa if-elif-kedjor för tydlig värdebaserad styrning och argumentstyrning.

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”case-satsen och mönstermatchning” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”case-satsen och mönstermatchning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”case-satsen och mönstermatchning”?

Skapa tydliga grenar för många värden. Lär dig case-satsen, globmönster, matchning med flera mönster och varför detta är bättre än långa if-elif-kedjor. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”case-satsen och mönstermatchning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Loopkonstruktioner (for, while)
  2. Funktioner i Bash-skript
  3. Skriptargument och alternativ ($@, $#, getopts)
  4. case-satsen och mönstermatchning
← Tillbaka till DevOps-bootcamp