Villkorssatser (if, else, elif)
Implementera beslutslogik i dina skript med hjälp av satserna 'if', 'else' och 'elif' för dynamiskt beteende.
Villkorssatser (if, else, elif) är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 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 villkor är viktiga
I Bash-skript behöver du ibland låta skriptet fatta beslut. Föreställ dig ett skript som utför olika åtgärder beroende på användarens indata eller om en fil finns.
Det är här villkorssatser kommer in! De gör det möjligt för skriptet att köra specifika kodblock endast när vissa villkor är uppfyllda.
Den grundläggande ”if”-satsen
Det enklaste villkoret är if-satsen. Den kontrollerar ett villkor och kör ett block med kommandon om villkoret är sant.
Syntaxen är:
if [ condition ]then# commands if condition is truefi(markerar slutet påif-blocket)
Ditt första ”if”-skript
Nu ska vi se en grundläggande if-sats i praktiken. Det här skriptet kontrollerar om ett tal är större än 5.
Prova att ändra värdet på NUMBER och köra skriptet!
#!/bin/bash
NUMBER=10
if [ $NUMBER -gt 5 ]
then
echo "The number $NUMBER is greater than 5."
fi
echo "Script finished."Skapa testvillkor
delen [ condition ] är central. Den är faktiskt ett kommando som heter test eller dess alias [.
Du kan också använda [[ condition ]], som är en mer avancerad variant med bättre syntax och som förhindrar problem med orddelning. För nybörjare är [ ] vanligt.
- Sätt alltid mellanslag runt hakparenteserna och operatorerna.
- Variabler i
[ ]bör vanligtvis omges av citattecken (till exempel"$VARIABLE") för att förhindra fel med tomma värden eller värden som innehåller flera ord.
Jämföra tal
När du jämför tal i Bash använder du särskilda operatorer:
-eq: Lika med-ne: Inte lika med-gt: Större än-ge: Större än eller lika med-lt: Mindre än-le: Mindre än eller lika med
Dessa används inuti [ ] eller [[ ]].
Jämföra strängar
För att jämföra text (strängar) används andra operatorer:
==eller=: Lika med (==föredras i[[ ]])!=: Inte lika med-z "$STRING": Sant om strängen är tom (har längden noll)-n "$STRING": Sant om strängen inte är tom (har en längd som inte är noll)
Kom ihåg att omge strängvariabler med citattecken!
Satsen ”if-else”
Vad gör du om du vill köra ett kodblock när ett villkor är sant OCH ett annat block när det är falskt?
Det är vad if-else används till! Den ger skriptet en alternativ väg.
Syntaxen är:
if [ condition ]then# commands if trueelse# commands if falsefi
”if-else” i praktiken
Det här skriptet frågar efter ett tal och talar om huruvida det är positivt eller inte. Det använder en if-else-struktur.
Kör det några gånger med olika indata (till exempel 5, -3 och 0).
#!/bin/bash
read -p "Enter a number: " NUM
if [ "$NUM" -gt 0 ]
then
echo "$NUM is a positive number."
else
echo "$NUM is not a positive number (it's zero or negative)."
fiFlera alternativ med ”elif”
När det finns fler än två möjliga resultat kan du använda elif (kort för ”else if”). Då kan du kontrollera flera villkor i följd.
Syntaxen är:
if [ condition1 ]then# commands if condition1 is trueelif [ condition2 ]then# commands if condition1 is false AND condition2 is trueelse# commands if all conditions are falsefi
Avancerad beslutslogik
Vi skapar ett skript som kategoriserar en användares ålder med hjälp av if, elif och else. Det hanterar flera scenarier.
Lägg märke till användningen av && för att kombinera villkor i [[ ]] (logiskt AND).
#!/bin/bash
read -p "Enter your age: " AGE
if [[ $AGE -lt 13 ]]
then
echo "You are a child."
elif [[ $AGE -ge 13 && $AGE -lt 18 ]]
then
echo "You are a teenager."
elif [[ $AGE -ge 18 && $AGE -lt 65 ]]
then
echo "You are an adult."
else
echo "You are a senior citizen."
fiVillkorskontroll
Studera följande Bash-skript:
#!/bin/bash
SCORE=85
if [ $SCORE -lt 60 ]
then
echo "Fail"
elif [ $SCORE -lt 80 ]
then
echo "Pass"
else
echo "Distinction"
fiSammanfattning av villkor
Bra jobbat! Du har lärt dig att göra Bash-skript smartare med hjälp av villkorssatser.
if-satsen kör kod om ett villkor är sant.elseanger en alternativ väg om villkoret iifär falskt.elifgör det möjligt att kontrollera flera villkor i följd.- Kom ihåg att använda lämpliga operatorer (
-eqför tal och==för strängar) och att alltid avslutaif-block medfi.
Dessa verktyg är grundläggande för att skapa dynamiska och interaktiva skript!
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 ”Villkorssatser (if, else, elif)” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Villkorssatser (if, else, elif)”, 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 ”Villkorssatser (if, else, elif)”?
Implementera beslutslogik i dina skript med hjälp av satserna 'if', 'else' och 'elif' för dynamiskt beteende. 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 3 av 4.
Hur lång tid tar lektionen ”Villkorssatser (if, else, elif)”?
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
- Ditt första Bash-skript och shebang
- Variabler och användarinmatning
- Villkorssatser (if, else, elif)
- Arbeta med arrayer i Bash