V programování nebo skriptování je smyčka jedním z nejzákladnějších a nejsilnějších konceptů. Smyčka provádí určité úkoly, dokud nejsou splněny zadané podmínky. Každý programovací nebo skriptovací jazyk má různé způsoby implementace konceptu.
V této příručce se podívejte na vnořenou smyčku v bash skriptování.
Vnořená smyčka
Smyčka podle definice provádí určité úkoly, dokud nejsou splněny podmínky. Co když úkol zahrnuje spuštění smyčky? Toto je koncept vnořené smyčky. Smyčka ve smyčce.
Toto je základní struktura smyčky.
while (podmínka)# něco
Zde bude smyčka while pokračovat v provádění úkolů deklarovaných uvnitř bloku, dokud bude splněna podmínka. V případě vnořené while smyčky by struktura vypadala takto.
# hlavní smyčkawhile (podmínka)
# vnořená smyčka
while (podmínka)
# něco
Teoreticky mohou vnořené smyčky jít do nekonečné hloubky. V mnoha situacích mohou být vnořené smyčky dokonalým řešením.
Smyčka v bash skriptu
Bash je výkonný skriptovací jazyk. V bash existují různé smyčkové struktury. Nejoblíbenější jsou smyčky pro, while a until. Pokud jste programování v C / C ++ již dříve znali, bude syntaxe vypadat docela podobně.
Pro smyčky
For loop je jedním z nejběžnějších a nejuniverzálnějších výstupů formulářů atd. Struktura smyček v bash skriptování. Struktura také hodně připomíná smyčku v C / C ++.
Struktura smyčky for v bash je následující.
for ((initialize; condition; increment)); dělat# něco
Hotovo
Struktura je velmi vysvětlující. Sekce inicializace není povinná. Podmínka a přírůstek mají však vyšší prioritu.
Pojďme to uvést do praxe. Zde je velmi zjednodušující bash skript, který implementuje pro smyčku.
pro ((i = 0; i < 5 ; i++)); doozvěna „ahoj svět“
Hotovo
Je také možné použít seznam / rozsah jako podmínku smyčky. Je to užitečné zejména při práci se seznamem souborů, číselnými rozsahy, poli, výstupy příkazů atd. Struktura vypadá asi takto.
pro položku v- ; dělat
- Bash nekonečná smyčka
- Vstup uživatele skriptu Bash
- Bash funkce vracející pole
# něco
Hotovo
Například následující skript vytiskne „ahoj svět“ pětkrát.
pro i v 1… 5; dělatozvěna „ahoj svět“
Hotovo
Co když potřebujeme pracovat s obsahem adresáře? V následujícím příkladu skript vytiskne všechny soubory v adresáři / usr / bin.
pro i v / usr / bin / *; dělatozvěna $ i
Hotovo
Co uděláme, abychom měli vnořenou smyčku pro? Je to jen jeden pro smyčku uvnitř druhého. Zde je vnořená smyčka pro použití předchozího příkladu.
pro ((i = 0; i < 3 ; i++)); dopro ((j = 0; j < 2 ; j++)); do
ozvěna „ahoj svět“
Hotovo
Hotovo
Výstup bude šestkrát „ahoj svět“. Vnější smyčka se spustí třikrát, vnitřní smyčka se spustí dvakrát.
Zatímco smyčky
Smyčka while je další populární a intuitivní smyčka dostupná v bash skriptování. Syntaxe vypadá takto.
zatímco# něco
Hotovo
V následujícím příkladu skript pětkrát vytiskne „hello world“.
num = 1while [$ num -le 5]; dělat
ozvěna „ahoj svět“
num = $ (($ num + 1))
Hotovo
Jak by vypadalo mít vnořenou smyčku while? Zde je jednoduchý příklad.
num_a = 1num_b = 1
while [$ num_a -le 5]; dělat
while [$ num_b -le 5]; dělat
ozvěna „ahoj svět“
num_b = $ (($ num_b + 1))
Hotovo
num_a = $ (($ num_a + 1))
Hotovo
Do smyček
Pokud máte programovací zázemí v C / C ++, jste obeznámeni se smyčkou do-while. Bash bohužel nic takového nemá. Dokud však smyčka nebude fungovat podobným způsobem. Syntaxe také vypadá docela stejně.
dokud [# něco
Hotovo
Rozdíl mezi while a dokud není smyčka podmínkou testu. Dokud je testovací podmínka pravdivá, bude chvíli fungovat smyčka while. Smyčka do však bude pokračovat v provozu, pouze pokud je podmínka nepravdivá.
Zde je rychlý příklad smyčky while. Vytiskne multiplikační tabulku 2.
num_a = 1do [$ num_a -gt 10]; dělat
echo $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
Hotovo
Přerušení smyčky
V určitých situacích, pokud jsou splněny určité podmínky, se běh zbytku smyčky stane nadbytečným. Přerušení smyčky jsou zajímavou funkcí, která umožňuje vylomení smyčky za daných podmínek. Pro vnořené smyčky je to důležitější, protože čím vyšší jsou smyčky, tím větší je spotřeba zdrojů a neefektivita.
Tady následující smyčka for se zastaví, jakmile dosáhne podmínky.
pro ((i = 1; i<=100;i++)); doozvěna $ i
if [$ i -eq 10]; pak
přestávka
fi
Hotovo
Podívejte se, jak přerušit smyčku while, abyste získali podrobné vysvětlení a demonstraci zlomení smyčky.
Závěrečné myšlenky
Vnořená smyčka je jednoduchý a výkonný koncept, kterému rozumíte a implementujete. Doufejme, že tento průvodce dokázal popsat a předvést koncept.
Zájem o další bash skriptovací průvodce? Přečtěte si následující příručky.
Šťastný výpočetní výkon!