I loop sono strutture critiche in qualsiasi linguaggio di programmazione e svolgono un ruolo nell'esecuzione di attività ripetitive che altrimenti sarebbero ingombranti e dispendiose in termini di tempo da eseguire in codice normale. Nello scripting bash, i loop hanno lo stesso scopo e in questa guida esamineremo più da vicino i vari tipi di loop e il modo in cui vengono utilizzati.
Per i loop
Un ciclo For viene utilizzato per scorrere un elenco di oggetti o elementi. L'elenco può comprendere numeri, stringhe, caratteri o anche array.
Un ciclo for assume la seguente struttura.
for item in list_of_items do command1 command2 done
Facciamo alcuni esempi:
Ciclo su un elenco di stringhe
Nell'esempio seguente, stiamo iterando su un elenco di stringhe, in questo caso pianeti, che comprende quattro elementi. Dopo l'iterazione, stamperemo ogni elemento sul perso usando l' eco comando.
for planet in Mercury Venus Earth Mars Jupiter do echo $planet done
Quindi assegna le autorizzazioni di esecuzione ed esegui for_loop.sh script bash. L'output mostra tutti gli elementi contenuti nell'elenco.
$ ./for_loop.sh
Ciclo su un intervallo di numeri
Con i cicli for, puoi anche specificare una sequenza in un intervallo di numeri definendo il punto iniziale e il punto finale utilizzando l'espressione di sequenza fornita.
{START..END}
L'esempio seguente mostra un ciclo for che mostra i numeri da 1 a 10
for n in {0..10} do echo value: $n done
L'esecuzione del ciclo ti dà l'output mostrato.
Inoltre, puoi specificare il numero di incrementi graduali tra i valori utilizzando la seguente espressione di sequenza.
{START..END..STEPWISE_INCREMENT}
Ad esempio, il ciclo seguente mostra i numeri da 1 a 10 con un incremento graduale di 2 tra i valori.
for n in {0..10..2} do echo value: $n done
Quando viene eseguito, il ciclo produce il seguente output.
Ciclo su una serie di elementi
Inoltre, puoi sfruttare i cicli for per eseguire l'iterazione su una matrice di elementi. Ad esempio, qui abbiamo un array chiamato "MOVIES" con diversi elementi che sono titoli di film.
#!/bin/bash MOVIES=('Happy Feet' 'Who killed Sara' 'Lupin' 'Money Heist' 'House of cards') for movie in "${MOVIES[@]}"; do echo Movie: $movie done
Quando lo script viene eseguito, il ciclo for itera sull'intero array e stampa i titoli dei film come mostrato.
Riepilogo
Come hai osservato, i cicli for sono abbastanza semplici e pratici. Rendono il codice più pulito eliminando il codice ripetitivo che richiede tempo per l'utente. Le attività ripetitive possono essere facilmente eseguite in poche semplici righe.