GNU/Linux >> Znalost Linux >  >> Linux

Bash pokračovat:Jak obnovit smyčku

Úvod

continue je vestavěný Bash, který mění tok skriptových smyček. Tento koncept není jedinečný pro Bash a objevuje se v jiných programovacích jazycích.

Nejlepší způsob, jak pochopit, jak Bash continue prohlášení funguje prostřednictvím praktických příkladů.

Tento tutoriál ukazuje, jak používat Bash continue příkaz ve skriptech Bash.

Předpoklady

  • Počítač se systémem Linux nebo macOS.
  • Textový editor pro příklady.
  • Základní znalost skriptování v Bash.

Prohlášení Bash continue

Bash continue příkaz obnoví následující iteraci v příkazu smyčky nebo smyčky.

Syntaxe je:

continue <integer>

continue příkaz má význam pouze při použití na smyčky. Hodnota celého čísla udává hloubku pro continue prohlášení. Ve výchozím nastavení je celé číslo 1 a napsání čísla není povinné. Zvyšte číslo pro obnovení příkazu vnější smyčky.

Použijte continue příkaz jako příkaz řízení smyčky. Například continue pomáhá ukončit aktuální iteraci uvnitř smyčky při splnění konkrétní podmínky. V závislosti na typu smyčky program pokračuje v další iteraci nebo restartuje smyčku.

Bash pokračovat Příklady

Níže jsou uvedeny příklady a vysvětlení práce s příkazem continue ve skriptech Bash.

Následující konstrukce primární smyčky ukazují, jak příkaz funguje:

  • Smyčka for pokračuje v další iteraci v kombinaci s pokračováním.
  • Příkaz continue restartuje while a until smyčky.

select příkaz se také objevuje v příkladech, i když se nejedná o primární konstrukci smyčky. Příkaz funguje jako smyčka a continue příkaz funguje pro jakýkoli smyčkový příkaz.

Použití Bash Pokračujte smyčkou a for

Použijte continue příkaz uvnitř podmínky if k řízení toku for :

#!/bin/bash

for i in {1..10}
do
	if [[ $i == '9' ]]
	then
		echo "Number $i!"
		continue
	fi
	echo "$i"
done
echo "Done!"

Kód dělá následující:

  • Řádek 3 spustí for smyčková podmínka, iterující proměnnou i od 1 do 10 .
  • Řádek 5 zkontroluje i hodnota. Když se proměnná rovná 9 , program odešle zprávu a restartuje smyčku při další iteraci (řádek 3 ).
  • Řádek 10 vypíše číslo do konzole pouze při podmíněném příkazu v řádku 5 je Nepravda .

Spusťte skript, abyste viděli výsledky.

Výstup vytiskne všechna jednotlivá čísla do konzole. Když se podmínka na řádku 5 vyhodnotí jako True ($i == '9' ), konzole odešle zprávu.

Použití Bash Pokračovat s vnořenou smyčkou

continue příkaz pracuje s vnořenými smyčkami také. Použijte například continue 2 pro obnovení vnější smyčky:

#!/bin/bash

for i in {1..5}
do
        for j in {1..5}
        do
                if [[ $i -eq $j ]]
                then
                        echo "$i = $j"
                        continue 2
                fi
                echo "$i =/= $j"
        done
done

echo "Done!"

Program provede následující:

  • Řádek 3 spustí vnější smyčku a zvýší proměnnou i od 1 5 .
  • Řádek 5 spustí vnitřní cyklus for, který zvýší proměnnou j od 1 5 pro každé i přírůstek.
  • Řádek 7 zkontroluje, zda jsou proměnné i a j jsou stejné ($i -eq $j ). Pokud ano, continue 2 příkaz obnoví vnější smyčku při další iteraci. Pokud se však hodnoty liší, program pokračuje podle očekávání.

Spusťte skript, abyste viděli výstup programu.

Pokaždé, když jsou dvě hodnoty stejné, první číslo se zvýší.

Použití Bash Pokračovat s smyčkou while

Níže je uveden příklad Bash skriptu, který používá <strong>continue</strong> příkaz v while smyčka:

#!/bin/bash

i=0

while [[ $i -lt 11 ]] 
do
	if [[ "$i" == '9' ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

Každý řádek dělá následující:

  • Řádek 3 definuje proměnnou i a nastaví hodnotu na 0 .
  • Řádek 5 zahájí while smyčka. Koncová podmínka je, když i je menší než 11 .
  • Řádek 7 uvádí kontrolu stavu pomocí if prohlášení. Když proměnná i rovná se 9 , program pokračuje na řádky 9-11 . Ve všech ostatních případech kód skočí na řádek 13 .
  • Řádky 9–11 vytiskněte zprávu do konzole, zvyšte i a continue příkaz obnoví cyklus na řádku 5 .
  • Řádky 13 a 14 vytisknout proměnnou i do konzole a zvýšit ji.

Chcete-li zobrazit výstup, spusťte skript z terminálu.

Program vytiskne všechna čísla do konzole. Kvůli podmíněným příkazům a příkazům continue se pro číslo 9 vytiskne jiná zpráva .

Použití Bash Pokračujte smyčkou dokud

Zkombinujte continue výpis s until smyčky a poskytnout podmínku pro změnu chování smyčky pro určitou hodnotu. Zkuste například následující skript:

#!/bin/bash

i=0

until [[ $i -gt 10  ]]
do
	if [[ $i -eq 9  ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

Kód inkrementuje proměnnou a opakuje se, dokud hodnota nedosáhne 10 . Když se proměnná rovná 9 , program vypíše jinou zprávu. continue příkaz restartuje until smyčka a pokračuje jako obvykle.

Použití Bash Pokračujte s vybranou smyčkou

select příkaz je zvláštní případ, protože se nejedná o primární skriptovací smyčku Bash. Příkaz vytváří nabídky, které vyžadují vstup uživatele. Použijte continue příkaz poskytnout jiný výstup na základě uživatelem zvolené hodnoty.

Jako příklad vyzkoušejte následující skript Bash:

#!/bin/bash

PS3="Choose a number: "

select i in {1..10}
do
	echo "Selected number: $i"
	if [[ $REPLY -eq 9 ]]
	then
		echo "Number $i!"
		continue
	fi
done

Skript se skládá z následujících prvků:

  • PS3 na řádku 3 je zobrazená zpráva pro select smyčka.
  • Řádek 5 definuje podmínku smyčky a uvádí čísla od 1 do 10 . Proměnná i ukládá uživatelský vstup.
  • Řádek 7 odráží výběr.
  • Řádek 8 provádí kontrolu. Pokud je hodnota vstupu uživatele 9 , program vytiskne zprávu do konzole a pokračuje ve select smyčka při další iteraci.

Spusťte skript a otestujte různé hodnoty, abyste viděli výstup.

Chcete-li program ukončit, stiskněte CTRL +C nebo přidejte příkaz break.


Linux
  1. Jak napsat smyčku v Bash

  2. Jak používat příkaz if else Conditionals ve skriptu Bash

  3. Jak ladit Bash skript?

  1. Jak zastavit skript Loop Bash v terminálu?

  2. Jak zjistit Bash>=4.0?

  3. Jak obnovit relaci Gnome?

  1. Jak komentovat v Bash

  2. Tiskový výstup příkazu cat ve smyčce skriptu bash

  3. Jak získat stav ukončení smyčky v bash