LX-SCR-INFO-case
updated 7/27/10 00:58
case
Indien we meer dan 2 waarden op een variabele willen testen, is een
if constructie soms minder goed leesbaar. In die omstandigheden wordt de
case ingezet. Je ziet hem onder andere opduiken in opstartscripts van servicedaemons, die onderscheid moeten kunnen maken tussen start, stop, restart, en status.
- voorbeeld
#!/bin/bash
#
# casemenu: voert een opdracht uit afhankelijk van de
# gemaakte keuze in het keuze menu
#
echo "Wat wilt u doen vandaag?"
echo "1) bash scripting"
echo "2) LAMP server"
echo "3) samba"
echo "4) iptables"
echo "5) I do not know !"
read case;
case $case in
1)
echo "Bourne again shell"
;;
2)
echo "Linux, Apache, Mysql en PHP"
;;
3)
echo "Server Message Blocks"
;;
4)
echo "Blokkeer niet teveel"
;;
5)
echo "erg dat je dat niet weet"
echo "misschien moet je je vandaag verdiepen in lvm2"
;;
*)
echo "Uw keuze is niet gevonden"
;;
esac
De hele case zit verpakt in case .... esac.
Een individuele keuze zit verpakt in <keuze>) .... ;;
- oefening
schrijf een script met de naam nu, en vijf opties die niet gecumuleerd worden:
-h : brengt de tijd op scherm
-d : brengt de datum op scherm in europese notatie
-w : brengt de weekdag op scherm (maandag ...)
-c : brengt een maandcalender op scherm van de huidige maand
-j : brengt een jaarcalender op scherm van het huidige jaar
geen of verkeerde optie: brengt gewoon date op scherm