I loop in Bash

Bash (Bourne Again SHell) è una delle shell più popolari e potenti disponibili su sistemi operativi Unix e Linux. Una delle funzionalità fondamentali di Bash è la capacità di eseguire iterazioni o loop, che permettono di automatizzare ripetizioni di comandi e processi. In questo articolo, esploreremo i principali tipi di iterazione in Bash: il loop for, il loop while, e il loop until. Vedremo anche alcune variazioni e usi avanzati di ciascuno di essi.

Il loop for

Il loop for è probabilmente il tipo di iterazione più utilizzato in Bash. Viene usato per iterare su una serie di valori, come elementi di una lista, file in una directory, o numeri in un intervallo.

Sintassi di base:


for variable in list
do
    commands
done

Esempio 1: Iterare su una lista di parole


for fruit in apple banana cherry
do
    echo "Fruit: $fruit"
done

Esempio 2: Iterare su file in una directory


for file in /path/to/directory/*
do
    echo "Found file: $file"
done

Esempio 3: Iterare su un intervallo di numeri


for i in {1..5}
do
    echo "Number: $i"
done

Il loop while

Il loop while esegue i comandi finché una condizione rimane vera. È utile quando non si conosce in anticipo il numero di iterazioni necessarie.

Sintassi di base:


while [ condition ]
do
    commands
done

Esempio 1: Loop che conta fino a un certo numero


counter=1
while [ $counter -le 5 ]
do
    echo "Counter: $counter"
    counter=$((counter + 1))
done

Esempio 2: Leggere un file riga per riga


while IFS= read -r line
do
    echo "Line: $line"
done < "file.txt"

Il loop until

Il loop until è simile al loop while, ma esegue i comandi finché la condizione rimane falsa. È, quindi, l'inverso del loop while.

Sintassi di base:


until [ condition ]
do
    commands
done

Esempio: Simile all'esempio del loop while, ma con un approccio diverso


counter=1
until [ $counter -gt 5 ]
do
    echo "Counter: $counter"
    counter=$((counter + 1))
done

Uscire dai loop: break e continue

  • break: Interrompe l'esecuzione del loop.
  • continue: Salta l'iterazione corrente e passa alla successiva.

Esempio di utilizzo di break e continue:


for i in {1..5}
do
    if [ $i -eq 3 ]; then
        continue
    fi
    if [ $i -eq 4 ]; then
        break
    fi
    echo "Number: $i"
done

Conclusione

I loop in Bash sono strumenti essenziali per l'automazione e la gestione dei task ripetitivi. Il loop for, while, e until offrono flessibilità e potenza per manipolare dati, iterare su file e liste, e molto altro. Imparare a usarli efficacemente può migliorare significativamente le tue capacità di scripting e semplificare molte operazioni quotidiane sui sistemi Unix e Linux.

Torna su