Ú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
auntil
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ěnnoui
od1
do10
. - Řá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
od1
až5
. - Řádek 5 spustí vnitřní cyklus for, který zvýší proměnnou
j
od1
až5
pro každéi
přírůstek. - Řádek 7 zkontroluje, zda jsou proměnné
i
aj
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 na0
. - Řá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á se9
, 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
acontinue
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 proselect
smyčka.- Řádek 5 definuje podmínku smyčky a uvádí čísla od
1
do10
. 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 veselect
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.