In un ciclo è infatti possibile specificare di compiere determinate azioni finché non si verifica una determinata condizione.
In bash ci sono tre tipi di cicli:
- while
- until
- for
Questo costrutto esegue le operazioni specificate finché la condizione specificata rimane vera, appena viene valutata falsa il ciclo termina ed il programma prosegue con l'istruzione successiva al while.
Esempio:
#! /bin/bash
contatore=0
while test $contatore -lt 10 ; # condizione
do # inizio blocco istruzioni
echo "Il contatore e' $contatore"
let contatore=$contatore+1
done # fine blocco istruzioni
echo "Fine while"
exit 0
Il programma semplicemente stampa il valore di contatore finché questo è minore di 10.
L'istruzione let semplicemente assegna a contatore il valore della somma tra contatore ed 1.
Until
E' simile al while, ma con la differenza che il ciclo di istruzioni viene eseguito quando la condizione è valutata falsa, metre termina una volta che è vera.
Altra differenza fondamentale è che con until prima viene eseguito il blocco di istruzioni, poi viene fatto il controllo, mentre con while era l'opposto.
Esempio:
#!/bin/bash
contatore=10
until test $contatore -lt 0 ; #condizione
do # inizio blocco istruzioni
echo "il contatore e' $contatore"
let contatore=$contatore-1
done # fine blocco istruzioni
echo "Fine until"
exit 0
Il programma è simile al precedente, solo che contatore parte da 10 ed arriva a 0.
For
Il for è un costrutto che esegue le istruzioni specificate per una certa sequenza di valori. Ovvero viene usata una variabile che assume ad ogni iterazione il valore successivo (nella sequenza) a quello che aveva nell'iterazione precedente.
Vediamo il solito esempio con la sequenza di numeri da 0 a 10:
#!/bin/bash
for i in `seq 0 10`;
do # inizio blocco istruzioni
echo "i= $i"
done # fine blocco istruzioni
echo "Fine for"
exit 0
Notiamo che i è la variabile che assume i valori della sequenza di numeri da 0 a 10 che è specificata con
`seq 0 10`.
Il for non si limita soltanto a sequenze di numeri, ma può essere usato per valori di qualsiasi tipo, come file o stringhe.
Esempio:
#!/bin/bash
for i in $( ls );
do
echo File: $i
done
exit 0
In questo caso i conterrà tutti i file o directory restituite dal comando ls.
E questo è tutto!
Nessun commento:
Posta un commento