Come utilizzare il ciclo Until negli script della shell
In bash for, mentre e until sono tre costrutti di loop. Sebbene ogni ciclo differisca sintatticamente e funzionalmente, il loro scopo è eseguire l'iterazione su un blocco di codice quando viene valutata una determinata espressione.
Il ciclo Until viene utilizzato per eseguire un blocco di codice finché l'espressione non viene valutata come falsa. Questo è esattamente l'opposto di un ciclo while. Il ciclo While esegue il blocco di codice mentre l'espressione è vera e il ciclo until fa il contrario.
until [ expression ]
do
code block
...
...
done
Analizziamo la sintassi.
- Per avviare il ciclo è necessario utilizzare la parola chiave Until seguita da un'espressione racchiusa tra parentesi graffe singole o doppie.
- L'espressione deve essere valutata come falsa fino all'avvio dell'esecuzione del blocco di codice.
- Il blocco di codice vero e proprio viene inserito tra do e done.
In questo breve articolo imparerai come utilizzare il ciclo Until negli script della shell utilizzando i seguenti esempi.
Crea un ciclo infinito negli script
Puoi creare un ciclo infinito utilizzando un'istruzione false come espressione. Quando provi a simulare cicli infiniti, prova a utilizzare sleep che trasmetterà periodicamente lo script.
count=0
until false
do
echo "Counter = $count"
((count++))
sleep 2
done
Crea istruzioni a riga singola
È possibile creare istruzioni di loop a riga singola. Dai un'occhiata al codice seguente. Questo è lo stesso del nostro primo esempio di ciclo infinito ma in una singola riga. Qui devi usare un punto e virgola (;)
per terminare ogni istruzione.
until false; do echo "Counter = $count"; ((count++)); sleep 2; done
Modificare il flusso con l'istruzione break e continue
Puoi utilizzare istruzioni break e continue all'interno del ciclo mentre. L'istruzione break uscirà dal ciclo e passerà il controllo all'istruzione successiva mentre l'istruzione continue salterà l'iterazione corrente e avvierà l'iterazione successiva nel ciclo.
Sto usando lo stesso esempio di ciclo infinito. Qui quando il conteggio è uguale a cinque l'istruzione continua salterà all'iterazione successiva saltando il resto del corpo del ciclo. Allo stesso modo, il ciclo si interrompe quando il conteggio è uguale o maggiore di 10.
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
Per questo articolo è tutto. Presto ti aggiorneremo con un altro articolo interessante "fino", quindi continua a leggere e continua a sostenerci.