GNU/Linux >> Linux Esercitazione >  >> Linux

Bash pausa e continua

I loop ti consentono di eseguire uno o più comandi più volte finché non viene soddisfatta una determinata condizione. Tuttavia, a volte potrebbe essere necessario modificare il flusso del ciclo e terminare il ciclo o solo l'iterazione corrente.

In Bash, break e continue le istruzioni ti consentono di controllare l'esecuzione del ciclo.

Bash break Dichiarazione #

La break termina il ciclo corrente e passa il controllo del programma al comando che segue il ciclo terminato. Viene utilizzato per uscire da un for , while , until o select loop.sLa sintassi di break dichiarazione assume la forma seguente:

break [n]

[n] è un argomento facoltativo e deve essere maggiore o uguale a 1. Quando [n] viene fornito, si esce dall'n-esimo anello di chiusura. break 1 è equivalente a break .

Per capire meglio come utilizzare il break dichiarazione, diamo un'occhiata ai seguenti esempi.

Nello script sottostante, l'esecuzione del while il ciclo verrà interrotto una volta che l'elemento iterato corrente è uguale a 2 :

i=0

while [[ $i -lt 5 ]]
do
  echo "Number: $i"
  ((i++))
  if [[ $i -eq 2 ]]; then
    break
  fi
done

echo 'All Done!'
Number: 0
Number: 1
All Done!

Ecco un esempio di utilizzo di break istruzione all'interno di for nidificato loop.

Quando l'argomento [n] non viene fornito, break termina il ciclo di chiusura più interno. I loop esterni non sono terminati:

for i in {1..3}; do
  for j in {1..3}; do
    if [[ $j -eq 2 ]]; then
      break
    fi
    echo "j: $j"
  done
  echo "i: $i"
done

echo 'All Done!'
j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
All Done!

Se vuoi uscire dal ciclo esterno, usa break 2 . Argomento 2 dice a break per terminare il secondo ciclo di chiusura:

for i in {1..3}; do
  for j in {1..3}; do
    if [[ $j -eq 2 ]]; then
      break 2
    fi
    echo "j: $j"
  done
  echo "i: $i"
done

echo 'All Done!'
j: 1
All Done!

Bash continue Dichiarazione #

Il continue salta i comandi rimanenti all'interno del corpo del ciclo di chiusura per l'iterazione corrente e passa il controllo del programma all'iterazione successiva del ciclo.

La sintassi di continue dichiarazione è la seguente:

continue [n]

Il [n] argomento è facoltativo e può essere maggiore o uguale a 1. Quando [n] è dato, viene ripreso l'n-esimo ciclo di chiusura. continue 1 è equivalente a continue .

Nell'esempio seguente, una volta che l'elemento iterato corrente è uguale a 2 , il continue istruzione farà tornare l'esecuzione all'inizio del ciclo e per continuare con l'iterazione successiva.

i=0

while [[ $i -lt 5 ]]; do
  ((i++))
  if [[ "$i" == '2' ]]; then
    continue
  fi
  echo "Number: $i"
done

echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!

Il seguente script stampa i numeri da 1 tramite 50 che sono divisibili per 9 .

Se un numero non è divisibile per 9 , il continue l'istruzione salta l'echo comando e passa il controllo all'iterazione successiva del ciclo.

for i in {1..50}; do
  if [[ $(( $i % 9 )) -ne 0 ]]; then
    continue
  fi
  echo "Divisible by 9: $i"
done
Divisible by 9: 9
Divisible by 9: 18
Divisible by 9: 27
Divisible by 9: 36
Divisible by 9: 45

Conclusione #

I loop sono uno dei concetti fondamentali dei linguaggi di programmazione. Nei linguaggi di scripting come Bash, i loop sono utili per automatizzare attività ripetitive.

La break istruzione viene utilizzata per uscire dal ciclo corrente. Il continue istruzione viene utilizzata per uscire dall'iterazione corrente di un ciclo e iniziare l'iterazione successiva.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Parallelizzare un Bash For Loop?

  2. Bash Beginner Series #8:Loop in Bash

  3. Esempi di Bash for loop

  4. Usando e in Bash mentre il ciclo

  5. Bash di Linux. ciclo for e funzione, per sommare numeri

Bash break:come uscire da un loop

Bash mentre Loop

Bash For Loop

Bash fino a Loop

Comando di uscita Bash e codici di uscita

Bash Scripting - Mentre e fino a ciclo spiegato con esempi