Betingede uttrykk: `if`, `else`, `case`
Implementer beslutningslogikk i skriptene dine ved hjelp av ulike betingede konstruksjoner.
Betingede uttrykk: `if`, `else`, `case` er en gratis leksjon i Bli ekspert på Linux-kommandolinjen på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bli ekspert på Linux-kommandolinjen, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.
Ta avgjørelser i skript
I shellskripting, akkurat som i livet, må De ofte ta beslutninger. Betingede setninger lar skriptene Deres utføre ulike kommandoer avhengig av om en bestemt betingelse er sann eller usann.
Dette er avgjørende for å lage fleksible og kraftige skript som kan tilpasse seg ulike situasjoner eller brukerinndata.
Den grunnleggende `if`-setningen
Den enkleste betingede konstruksjonen er if-setningen. Den kontrollerer en betingelse, og hvis betingelsen er sann, utfører den en blokk med kommandoer. Hvis den er usann, hoppes kommandoene over.
Den grunnleggende syntaksen ser slik ut:
if [ condition ]; then# commands to run if truefi
Husk fi for å avslutte if-blokken!
Enkelt `if`-eksempel
La oss se en enkel if-setning i praksis. Dette skriptet kontrollerer om en variabel num er større enn 5.
Prøv å endre verdien til num for å se hvordan resultatet endres!
#!/bin/bash
num=7
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5."
fi
num=3
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5. (This won't print)"
fi`if-else`: To mulige forløp
Hva om De vil utføre ett sett med kommandoer hvis en betingelse er sann, og et annet sett hvis den er usann? Det er her else kommer inn.
if-else-setningen gir skriptet Deres to separate forløp:
if [ condition ]; then# commands if condition is trueelse# commands if condition is falsefi
Bruke `if-else`
Dette skriptet bruker if-else til å avgjøre om et tall er partall eller oddetall. Vi bruker den aritmetiske evalueringen (( )) for tydeligere tallsammenligninger og beregninger.
Operatoren % gir resten etter en divisjon. Hvis num % 2 er 0, er tallet et partall!
#!/bin/bash
num=4
if (( num % 2 == 0 )); then
echo "$num is an even number."
else
echo "$num is an odd number."
fi
num=9
if (( num % 2 == 0 )); then
echo "$num is an even number. (This won't print)"
else
echo "$num is an odd number."
fi`elif`: Flere betingelser
Noen ganger har De mer enn to mulige utfall. I slike situasjoner kan De bruke elif (kort for «else if») til å kontrollere flere betingelser i rekkefølge.
Skriptet kontrollerer betingelsene én etter én. Kommandoene til den første sanne betingelsen utføres, og resten hoppes over.
if [ cond1 ]; then ...elif [ cond2 ]; then ...else ...fi
Kjede med `elif`
Her er et eksempel som bruker if-elif-else til å tildele en bokstavkarakter basert på en poengsum. Legg merke til at betingelsene kontrolleres fra høyeste til laveste poengsum.
Hvis poengsummen er 95, oppfylles den første if-betingelsen (>= 90), og «A» skrives ut. De andre elif- og else-blokkene ignoreres deretter.
#!/bin/bash
score=85
if [ "$score" -ge 90 ]; then
echo "Grade: A"
elif [ "$score" -ge 80 ]; then
echo "Grade: B"
elif [ "$score" -ge 70 ]; then
echo "Grade: C"
else
echo "Grade: F"
fi`case`: Enkelt valg
Når De har én variabel eller ett uttrykk som kan ha mange mulige verdier, og vil utføre ulike handlinger for hver verdi, er case-setningen ofte ryddigere enn en lang if-elif-else-kjede.
Den egner seg godt for menystyrte skript eller håndtering av bestemte inndataalternativer.
case $variable inpattern1) commands ;;pattern2) commands ;;*) default commands ;;esac
Bruke `case`-setninger
Dette skriptet viser hvordan De kan bruke case til å reagere på ulike brukerhandlinger (start, stop, restart). Mønsteret *) fungerer som standardvalg og fanger opp alle verdier som ikke samsvarer med noe annet.
Hver kommandoblokk avsluttes med ;;, noe som er avgjørende for at case-setningen skal fungere riktig.
#!/bin/bash
action="start"
case "$action" in
"start")
echo "Starting service..."
;;
"stop")
echo "Stopping service..."
;;
"restart")
echo "Restarting service..."
;;
*) # Default case for anything else
echo "Invalid action: $action"
;;
esac
action="status"
case "$action" in
"start") echo "Starting service..." ;;
"stop") echo "Stopping service..." ;;
"restart") echo "Restarting service..." ;;
*) echo "Invalid action: $action" ;;
esacBetingelsesutfordring
Les skriptet nedenfor nøye. Hva blir resultatet når dette skriptet kjøres?
#!/bin/bash
color="blue"
if [ "$color" == "red" ]; then
echo "It's a primary color."
elif [ "$color" == "yellow" ]; then
echo "It's another primary color."
elif [ "$color" == "blue" ]; then
echo "Yes, blue is primary!"
else
echo "Unknown color."
fiBeslutninger gjort enkelt
Godt jobbet! De har lært de grunnleggende måtene å legge til beslutningslogikk i shellskriptene Deres på.
if: Utfører kommandoer hvis en betingelse er sann.if-else: Gir to forløp, ett for sann og ett for usann betingelse.elif: Gjør det mulig å kjede flere betingelser for mer kompleks logikk.case: En ryddig måte å håndtere flere valg basert på én enkelt verdi.
Disse konstruksjonene er avgjørende for å skrive skript som kan reagere dynamisk på ulike inndata og situasjoner.
Lær deg Bli ekspert på Linux-kommandolinjen 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
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Betingede uttrykk: `if`, `else`, `case`» gratis?
Ja – hele teksten i «Betingede uttrykk: `if`, `else`, `case`» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bli ekspert på Linux-kommandolinjen-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.
Hva lærer jeg i «Betingede uttrykk: `if`, `else`, `case`»?
Implementer beslutningslogikk i skriptene dine ved hjelp av ulike betingede konstruksjoner. Du øver på Bli ekspert på Linux-kommandolinjen 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 Bli ekspert på Linux-kommandolinjen?
Ingen tidligere erfaring er nødvendig. Bli ekspert på Linux-kommandolinjen 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 2 av 4.
Hvor lang tid tar leksjonen «Betingede uttrykk: `if`, `else`, `case`»?
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 Bli ekspert på Linux-kommandolinjen-leksjonen?
Ja. Alle Bli ekspert på Linux-kommandolinjen-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
- Variabler, inndata og utdata
- Betingede uttrykk: `if`, `else`, `case`
- Løkker: `for`, `while`, `until`
- Funksjoner og argumenter i shell-skript