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.