GNU/Linux >> Znalost Linux >  >> Linux

Bash přestávka a pokračovat

Smyčky umožňují spustit jeden nebo více příkazů vícekrát, dokud není splněna určitá podmínka. Někdy však může být nutné změnit tok smyčky a ukončit smyčku nebo pouze aktuální iteraci.

V Bash break a continue příkazy vám umožňují řídit provádění smyčky.

Bash break Prohlášení #

break příkaz ukončí aktuální smyčku a předá řízení programu příkazu, který následuje po ukončené smyčce. Používá se k ukončení for , while , until nebo select loop.sSyntaxe break výpis má následující tvar:

break [n]

[n] je volitelný argument a musí být větší nebo roven 1. Když [n] Pokud je poskytnuta, n-tá uzavírací smyčka je opuštěna. break 1 je ekvivalentní break .

Chcete-li lépe pochopit, jak používat break prohlášení, podívejme se na následující příklady.

Ve skriptu níže je provedení while smyčka bude přerušena, jakmile bude aktuální iterovaná položka rovna 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!

Zde je příklad použití break příkaz uvnitř vnořený for smyčky.

Když argument [n] není zadáno, break ukončuje nejvnitřnější uzavírací smyčku. Vnější smyčky nejsou ukončeny:

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!

Pokud chcete opustit vnější smyčku, použijte break 2 . Argument 2 říká break pro ukončení druhé smyčky:

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 Prohlášení #

continue příkaz přeskočí zbývající příkazy uvnitř těla uzavřené smyčky pro aktuální iteraci a předá řízení programu další iteraci smyčky.

Syntaxe continue prohlášení je následující:

continue [n]

[n] argument je volitelný a může být větší nebo roven 1. When [n] je dán, je obnovena n-tá smyčka. continue 1 je ekvivalentní continue .

V níže uvedeném příkladu, jakmile je aktuální iterovaná položka rovna 2 , continue příkaz způsobí, že se provedení vrátí na začátek cyklu a bude pokračovat další iterací.

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!

Následující skript vytiskne čísla od 150 které jsou dělitelné 9 .

Pokud číslo není dělitelné 9 , continue příkaz přeskočí echo příkaz a předejte řízení další iteraci cyklu.

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

Závěr č.

Smyčky jsou jedním ze základních pojmů programovacích jazyků. Ve skriptovacích jazycích, jako je Bash, jsou smyčky užitečné pro automatizaci opakujících se úloh.

break příkaz se používá k ukončení aktuální smyčky. continue příkaz se používá k ukončení aktuální iterace smyčky a zahájení další iterace.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Paralelizovat Bash For Loop?

  2. Pokračování bash line po &&a || Zdokumentováno?

  3. Bash Beginner Series #8:Loops in Bash

  1. Jak napsat smyčku v Bash

  2. Bash for smyčky Příklady

  3. Bash - příkaz Datum a mezera

  1. Bash pro průvodce smyčkou a příklady

  2. Příklady Bash for Loop a While Loop

  3. Chycen ve smyčce? Awk While, Do While, For Loop, Break, Continue, Exit Příklady