Lezione 7 – cicli loop

Molto spesso dobbiamo ripetere una serie di istruzioni ciclicamente all’interno delo script.
In BASH ci sono tre istruzioni che permettono ciò


for (variabile)  do … done

Questa istruzione consente di eseguire una o una serie di istruzioni successive per un numero specificato numero di volte, con la seguente sintassi:
    for (variabile)
          do
             istruzioni;
   done

La variabile può essere un nome qualsiasi, il più classico è semplicemente i ,indicata come indice che va da un numero ad un altro;durante questo ciclo vengono seguite le istruzioni che si trovano dopo il do.
Il punto e virgola ; deve essere indicato alla fine dell’ultima istruzione del do
In questo script di esempio verranno stampati i numeri da 1 a 10:per il numero di volte indicate dalla variabile i che va da 1 a 10 (minore di 11)  viene incrementatta di 1 unità ++.

#!/bin/bash
    for ((i=1;i<11;i++));
                          do echo $i;
    done


while (condizione)  do … done

Questa istruzione fa un controllo in testa ovvero viene controllata la condizione in uscita , mente (in inglese while) è vera la condizione esegui una serie di istruzioni successive.

while condizione ;
                                 do
                                  istruzuioni;
done

Lo stesso esempio di script precedente puo essere fatto così: mentre i è minore di “lower than” 11 esegui le istuzioni

#!/bin/bash
while [ $i -lt 11 ];
                       do
                         echo $i
                         i=$[$i+1];
                        #incrementa la variabile i di una unità
done


until  (condizione)  do … done

Questo istruzione ha una sintassi praticamente identica al while,  ma con la differenza che le istruzioni all’interno del ciclo vengono eseguite finchè  (in inglese until) il test non da’ risultato positivo:

until CONDIZIONE;
                     do ISTRUZIONI;
done

Lo stesso script di esempio che stampa i numeri da 1 a 10

#!/bin/bash
  $i=1
  until [  $i -gt 10 ]; do
                 echo $i
                 $i=$i+1;
done

Finchè la variabile è maggiore “greath than” di 10 il ciclo si ripete.


 E’ possibile uscire sempre in modo “forzato” in qualsiasi momento da un ciclo con le istruzioni :

break
Peretete di abbandonare il ciclo che si sta eseguendo passando all’istruzione successiva a quella del ciclo .

continue
Forza il ritorno al controllo della condizione del ciclo (ritorna al controllo in testa) evitando di eseguire le istruzione che seguono nel ciclo.

 

 

Lezione Precedente :Costrutti Decisionali (CASE)                                                                                 Lezione Prossima: Le Funzioni

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Anti-spam: complete the taskWordPress CAPTCHA