DocLinux 9 - 5

# Le strutture di controllo - while e case

- Un ulteriore costrutti ricorsivo è while <programma che valuta la condizione>; do <elenco di cose da fare>; done
- In questo caso la lista di operazioni da eseguire verrà ripetuta fintanto che l'esecuzione del programma ritornerà il codice 0
- Un ulteriore costrutto di selezione è case <parola da controllare> in (<elenco di casi, con caratteri jolly, separati da |>) <elenco di azioni da fare> ;; <eventuali altri casi> esac
- la <parola da controllare> può essere una variabile (indicata dal $), una stringa contenente variabili (eventualmente racchiusa tra ") oppure il ciò che un comando ha stampato su standard output (racchiuso tra `)
- E' da notare che ogni lista di comandi dei casi va terminata con due ;
- La parola da confrontare viene confrontata con le varie espressioni in ordine, dalla prima all'ultima. Appena una coincide, viene eseguita la lista delle operazioni e non vengono eseguiti altri controlli. Se noi inseriamo una espressione più generica prima di una più specifica, verrà sempre solo eseguita la lista di operazioni della più generica.
- Se si vuole creare un lista che venga eseguita in caso la parola di selezione non coincida con nessun caso precedente si può utilizzare come elenco delle condizioni da verificare ( * ) che intercetta qualunque parola non intercettata da altri prima

© Ing. Stefano Salvi - released under FDL licence