Ú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
whileauntilsmyč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í
forsmyčková podmínka, iterující proměnnouiod1do10. - Řádek 5 zkontroluje
ihodnota. 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
iod1až5. - Řádek 5 spustí vnitřní cyklus for, který zvýší proměnnou
jod1až5pro každéipřírůstek. - Řádek 7 zkontroluje, zda jsou proměnné
iajjsou stejné ($i -eq $j). Pokud ano,continue 2pří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
ia nastaví hodnotu na0. - Řádek 5 zahájí
whilesmyčka. Koncová podmínka je, kdyžije menší než11. - Řádek 7 uvádí kontrolu stavu pomocí
ifprohlášení. Když proměnnáirovná 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
iacontinuepříkaz obnoví cyklus na řádku 5 . - Řádky 13 a 14 vytisknout proměnnou
ido 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ů:
PS3na řádku 3 je zobrazená zpráva proselectsmyčka.- Řádek 5 definuje podmínku smyčky a uvádí čísla od
1do10. Proměnnáiuklá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 veselectsmyč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.