next up previous contents index
Next: Kommandoen printf og utskrifter Up: Skall-programmering Previous: Operatoren while

Operatoren case

Skallet har ein fleirvalgsoperator, case, denne fungerer som ein stor if-elif-fi-konstruksjon. Ut frå ein streng kan case utføre ei liste av kommandoar assosiert med den kategorien.

zevs% case $VAR in
>		 mønster1)
>				 kommando-liste
>				 ;;
>		 mønster2)
>				 kommando-liste
>				 ;;
>		 mønster3)
>				 kommando-liste
>				 ;;
> esac
zevs%
Det kan vere ubegrensa mange mønster og kommando-lister, kommando-lista assosiert med kvart mønster vere terminert med ;; ( semikolon ). I tillegg må alle mønster vere forskjellige og tegnet ) ( høgre parentes ) stå etter kvart mønster. Variabel kan vere alle miljø-variable, eller eit uttrykk som er eller returnerer ein streng.

zevs% case $LOGNAME in
>		 jot)
>				echo "`allo `allo Jo ..." 
>				 ;;
>		 eyvindh)
>				 echo "Jobbe nuh igjen ... ?"
>				 echo "Ha deg heim til kjerringa !"
>				 logout
>				 ;;
>		 trondk)
>				 echo "User too confused to work !"
>				 logout
>				 ;;
>		 *)
>				 echo "Willkommen, bievenue, willkommen to `uname-n`."
>				;;
> esac
zevs%
Mønsterdelen av av case-operatoren tillet bruk av regulære uttrykk i skall-format. I dette eksemplet kunne vi f.eks ha brukt *ot, ?ot, jo* eller eit anna mønster for å finne jot. I tillegg kan ein bruke |, røyr-symbolet ( pipe ), for meine eller ( OR ) i mønster seksjonen. Ved regulære uttrykk vil det første mønsteret som passar til strengen slå til.
next up previous contents index
Next: Kommandoen printf og utskrifter Up: Skall-programmering Previous: Operatoren while
Trond.Kandal@itea.ntnu.no