Voorwaardelijke instructies: `if`, `else`, `case`
Implementeer beslislogica in uw scripts met verschillende voorwaardelijke constructies.
Voorwaardelijke instructies: `if`, `else`, `case` is een gratis Beheersing van de Linux-opdrachtregel-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Beheersing van de Linux-opdrachtregel. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Beheersing van de Linux-opdrachtregel bevat in totaal 4 lessen.
Beslissingen nemen in scripts
Bij shellscripts moet je, net als in het dagelijks leven, vaak beslissingen nemen. Met voorwaardelijke instructies kun je verschillende opdrachten uitvoeren op basis van de vraag of een bepaalde voorwaarde waar of onwaar is.
Dit is essentieel voor het maken van flexibele en krachtige scripts die zich aan verschillende situaties of invoer van gebruikers kunnen aanpassen.
De eenvoudige `if`-instructie
De eenvoudigste voorwaardelijke instructie is de if-instructie. Deze controleert een voorwaarde en voert een blok opdrachten uit als die voorwaarde waar is. Als de voorwaarde onwaar is, wordt het blok overgeslagen.
De basissyntaxis ziet er als volgt uit:
if [ condition ]; then# commands to run if truefi
Denk eraan om fi te gebruiken om het if-blok af te sluiten.
Eenvoudig voorbeeld met `if`
Bekijk een eenvoudige if-instructie in actie. Dit script controleert of een variabele num groter is dan 5.
Probeer de waarde van num te wijzigen om te zien hoe de uitvoer verandert.
#!/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`: twee paden
Wat als je één reeks opdrachten wilt uitvoeren als een voorwaarde waar is, en een andere reeks als de voorwaarde onwaar is? Daarvoor gebruik je else.
De if-else-instructie biedt twee verschillende paden voor je script:
if [ condition ]; then# commands if condition is trueelse# commands if condition is falsefi
`if-else` gebruiken
Dit script gebruikt if-else om te bepalen of een getal even of oneven is. We gebruiken de rekenkundige evaluatie (( )) om getallen duidelijker met elkaar te vergelijken en berekeningen uit te voeren.
De operator % geeft de rest van een deling. Als num % 2 0 is, is het getal even.
#!/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`: meerdere voorwaarden
Soms zijn er meer dan twee mogelijke uitkomsten. In zulke situaties kun je elif (een afkorting van "else if") gebruiken om meerdere voorwaarden achter elkaar te controleren.
Het script controleert de voorwaarden één voor één. De eerste voorwaarde die waar is, bepaalt welke opdrachten worden uitgevoerd; de rest wordt overgeslagen.
if [ cond1 ]; then ...elif [ cond2 ]; then ...else ...fi
Keten van `elif`-instructies
Dit is een voorbeeld waarin if-elif-else wordt gebruikt om op basis van een score een lettercijfer toe te kennen. Let erop dat de voorwaarden worden gecontroleerd van de hoogste naar de laagste score.
Als de score 95 is, voldoet de eerste if-voorwaarde (>= 90) en wordt "A" afgedrukt. De andere elif- en else-blokken worden daarna genegeerd.
#!/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`: eenvoudige selectie
Als één variabele of expressie veel mogelijke waarden kan hebben en je voor elke waarde een andere actie wilt uitvoeren, is de case-instructie vaak overzichtelijker dan een lange keten van if-elif-else-instructies.
Deze is bijzonder handig voor scripts met menu's of voor het verwerken van specifieke invoeropties.
case $variable inpattern1) commands ;;pattern2) commands ;;*) default commands ;;esac
`case`-instructies gebruiken
Dit script laat zien hoe je case gebruikt om op verschillende gebruikersacties te reageren (starten, stoppen, opnieuw starten). Het patroon *) fungeert als standaardoptie en vangt alle waarden op die niet overeenkomen.
Elk blok opdrachten eindigt met ;;. Dat is essentieel om de case-instructie correct te laten werken.
#!/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" ;;
esacUitdaging met voorwaarden
Lees het onderstaande script zorgvuldig. Wat is de uitvoer wanneer je dit script uitvoert?
#!/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."
fiBeslissingen eenvoudig gemaakt
Goed gedaan. Je hebt de belangrijkste manieren geleerd om beslissingslogica aan je shellscripts toe te voegen.
if: voert opdrachten uit als een voorwaarde waar is.if-else: biedt twee paden: één voor een ware en één voor een onware voorwaarde.elif: maakt een keten van meerdere voorwaarden mogelijk voor complexere logica.case: een overzichtelijke manier om meerdere keuzes op basis van één waarde af te handelen.
Deze constructies zijn essentieel voor het schrijven van scripts die dynamisch op verschillende invoer en situaties kunnen reageren.
Leer Beheersing van de Linux-opdrachtregel met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Voorwaardelijke instructies: `if`, `else`, `case`” gratis?
Ja — de volledige tekst van “Voorwaardelijke instructies: `if`, `else`, `case`” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Beheersing van de Linux-opdrachtregel wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Beheersing van de Linux-opdrachtregel bevat in totaal 4 lessen.
Wat leer ik in “Voorwaardelijke instructies: `if`, `else`, `case`”?
Implementeer beslislogica in uw scripts met verschillende voorwaardelijke constructies. Je oefent met Beheersing van de Linux-opdrachtregel door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Beheersing van de Linux-opdrachtregel te beginnen?
Ervaring vooraf is niet nodig. Beheersing van de Linux-opdrachtregel op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Voorwaardelijke instructies: `if`, `else`, `case`”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Beheersing van de Linux-opdrachtregel?
Ja. Elke les over Beheersing van de Linux-opdrachtregel bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Variabelen, invoer en uitvoer
- Voorwaardelijke instructies: `if`, `else`, `case`
- Lussen: `for`, `while`, `until`
- Functies en argumenten in shellscripts