Ricerca nel sito web

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.

Articoli correlati: