In questa sezione troverai cicli for, while e until.
Il ciclo for è leggermente diverso da quello degli altri linguaggi di programmazione. Basilarmente, ti permette un'iterazione su una serie di 'parole' in una stringa.
Il while esegue una porzione di codice se l'espressione di controllo è vera, e si ferma esclusivamente quando è falsa (o viene raggiunta un'interruzione esplicita all'interno del codice eseguito).
Il ciclo until è all'incirca uguale al ciclo while, solo che il codice è eseguito finchè l'espressione di controllo ha valore "falso".
Se hai il sospetto che while e until siano molto simili hai ragione.
#!/bin/bash
for i in $( ls ); do
echo item: $i
done
Sulla seconda riga, dichiariamo i come la variabile che prenderà i differenti valori contenuti in $( ls ).
La terza riga potrebbe essere più lunga se necessario, o ci potrebbero essere più righe prima del done (4).
`done' (4) indica che il codice che ha utilizzato il valore di $i è terminato e $i può ricevere un nuovo valore.
Questo script ha veramente poco senso, ma un modo più utile per utilizzare il ciclo for sarebbe di usarlo per isolare ("to match", ndt) solo certi file nell'esempio precedente.
fiesh ha suggerito di aggiungere questo modo di eseguire un ciclo. Si tratta di un ciclo for più simile al for dei linguaggi C/perl...
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
Questo script 'emula' la ben conosciuta struttura 'for' dei linguaggi C, Pascal, perl, etc.
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done