Come utilizzare le istruzioni break e continue negli script della shell
In questo articolo, daremo un'occhiata a come utilizzare un'interruzione e continuare negli script bash. In bash, abbiamo tre costrutti di ciclo principali (for, while, until). Le istruzioni break e continue sono incorporate in bash e utilizzate per modificare il flusso dei cicli. Questo concetto di interruzione e continuazione è disponibile nei linguaggi di programmazione più diffusi come Python.
$ type -a break continue
Uscire dal ciclo con un'istruzione Break
L'istruzione break uscirà dal ciclo e il controllo verrà passato all'istruzione successiva nel ciclo. È possibile eseguire il comando help per ottenere alcune informazioni sull'istruzione break.
$ help break
La sintassi di base di break.
$ break [n]
n is optional
Dai un'occhiata all'esempio qui sotto. Si tratta di un semplice ciclo for che esegue l'iterazione su un intervallo di valori compreso tra 1 e 20 in un passo incrementale di 2. L'istruzione condizionale valuterà l'espressione e quando è true($val=9) eseguirà l'istruzione break e il ciclo verrà terminato saltando le iterazioni rimanenti.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
break
else
echo "printing ${val}"
fi
done
Ignorare un'iterazione con l'istruzione continue
Cosa succede se non si desidera uscire completamente dal ciclo ma saltare il blocco di codice quando viene soddisfatta una determinata condizione? Questa operazione può essere eseguita con un'istruzione continue. L'istruzione continue ignorerà l'esecuzione del blocco di codice quando viene soddisfatta una determinata condizione e il controllo viene passato nuovamente all'istruzione loop per l'iterazione successiva.
Per accedere alla guida.
$ help continue
Dai un'occhiata all'esempio qui sotto. Questo è lo stesso esempio che abbiamo usato per dimostrare l'istruzione break. Ora, quando Val viene valutato a nove, l'istruzione continue ignorerà tutti i blocchi di codice rimanenti e passerà il controllo al ciclo for per l'iterazione successiva.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
continue
fi
echo "printing ${val}"
done
Se conoscevi python, il comportamento di interruzione e continuazione è lo stesso anche in python. Ma python fornisce un'altra istruzione di controllo del ciclo chiamata pass.
Pass è come un'istruzione null e l'interprete la leggerà ma non eseguirà alcuna operazione. Semplicemente non si ottiene alcuna operazione. Bash non fornisce un'istruzione simile, ma possiamo emulare questo comportamento utilizzando la parola chiave true o i due punti(:). Sia true che i due punti sono incorporati nella shell e non eseguono alcuna operazione.
$ type -a : true
Dai un'occhiata all'esempio qui sotto. Quando un'istruzione condizionale viene valutata come true($val=9), l'affermazione true non farà nulla e il ciclo continuerà.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
true
fi
echo "printing ${val}"
done
Questo è tutto per questo articolo. Ci piacerebbe sentire il tuo prezioso feedback e tutti i suggerimenti che hai.