I loop sono uno dei concetti fondamentali dei linguaggi di programmazione. I loop sono utili quando vuoi eseguire una serie di comandi più e più volte finché non viene soddisfatta una condizione specifica.
Nei linguaggi di scripting come Bash, i loop sono utili per automatizzare le attività ripetitive. Ci sono 3 costrutti di ciclo di base nello scripting Bash, for
ciclo, while
ciclo e until
ciclo.
Questo tutorial spiega le basi del until
loop in Bash.
Bash until
Ciclo #
Il until
loop viene utilizzato per eseguire un determinato insieme di comandi fintanto che la condizione data restituisce false.
Il Bash until
loop assume la forma seguente:
until [CONDITION]
do
[COMMANDS]
done
La condizione viene valutata prima di eseguire i comandi. Se la condizione restituisce false, i comandi vengono eseguiti. In caso contrario, se la condizione risulta vera, il ciclo verrà terminato e il controllo del programma verrà passato al comando che segue.
Nell'esempio seguente, ad ogni iterazione il ciclo stampa il valore corrente della variabile counter
e incrementa la variabile di uno.
#!/bin/bash
counter=0
until [ $counter -gt 5 ]
do
echo Counter: $counter
((counter++))
done
Il ciclo continua finché il counter
variabile ha un valore maggiore di quattro. Lo script produrrà il seguente output:
Counter: 0
Counter: 1
Counter: 2
Counter: 3
Counter: 4
Counter: 5
Usa la break
e continue
istruzioni per controllare l'esecuzione del ciclo.
Bash until
Esempio di ciclo #
Il seguente script può essere utile quando il tuo host git ha tempi di inattività e invece di digitare manualmente git pull
più volte finché l'host non è online, puoi eseguire lo script una volta. Tenterà di estrarre il repository finché non avrà esito positivo.
#!/bin/bash
until git pull &> /dev/null
do
echo "Waiting for the git host ..."
sleep 1
done
echo -e "\nThe git repository is pulled."
Lo script stamperà "Waiting for the git host ..." e sleep
per un secondo fino a quando l'host git non va online. Una volta che il repository è stato estratto, stamperà "Il repository git è stato estratto.".
Waiting for the git host ...
Waiting for the git host ...
Waiting for the git host ...
The git repository is pulled.
Conclusione #
Il while
e until
i loop sono simili tra loro. La differenza principale è che il while
il ciclo continua finché la condizione restituisce true
e il until
il ciclo continua finché la condizione restituisce false
.
Se hai domande o feedback, sentiti libero di lasciare un commento.