Ricerca nel sito web

Come utilizzare le istruzioni Break e Continue negli script di shell


In questo articolo, daremo un'occhiata a come utilizzare un'interruzione e un continua negli script bash. In bash abbiamo tre costrutti di ciclo principali (for, mentre, until). Le istruzioni Break e continue sono integrate in bash e utilizzate per alterare il flusso dei tuoi loop. Questo concetto di interruzione e continuazione è disponibile nei linguaggi di programmazione più diffusi come Python.

type -a break continue

Esci dal ciclo con un'istruzione Break

L'istruzione break uscirà dal ciclo e il controllo verrà passato all'istruzione successiva nel ciclo. Puoi 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 seguente. Questo è un semplice ciclo for che esegue un'iterazione su un intervallo di valori da 1 a 20 in un passaggio incrementale di 2. L'istruzione condizionale valuterà l'espressione e quando sarà true($val=9) allora eseguirà l'istruzione break e il ciclo verrà terminato saltando le restanti iterazioni.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
     break
  else
  echo "printing ${val}"
fi
done

Salta un'iterazione con l'istruzione continue

Cosa succede se non vuoi uscire completamente dal ciclo ma saltare il blocco di codice quando viene soddisfatta una determinata condizione? Questo può essere fatto con un'istruzione continua. L'istruzione continue salterà l'esecuzione del blocco di codice quando viene soddisfatta una determinata condizione e il controllo verrà passato all'istruzione loop per l'iterazione successiva.

Per accedere alla guida.

help continue

Dai un'occhiata all'esempio seguente. Questo è lo stesso esempio che abbiamo usato per dimostrare l'istruzione break. Ora, quando Val viene valutato a nove, l'istruzione continue salterà 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 interrompi e continua è lo stesso anche in Python. Ma Python fornisce un'ulteriore istruzione di controllo del ciclo chiamata pass.

Pass è come un'istruzione null e l'interprete la leggerà ma non eseguirà alcuna operazione. Il risultato è semplicemente nessuna operazione. Bash non fornisce un'affermazione simile ma possiamo emulare questo comportamento utilizzando la parola chiave true o due punti(:). Sia true che due punti sono integrati nella shell e non eseguono alcuna operazione.

type -a : true

Dai un'occhiata all'esempio seguente. Quando un'istruzione condizionale viene valutata come true($val=9), l'istruzione 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

Per questo articolo è tutto. Ci piacerebbe sentire il tuo prezioso feedback e tutti i suggerimenti che hai.