Programování BASH

Vnořená smyčka v příkladech skriptu Bash

Vnořená smyčka v příkladech skriptu Bash

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čka
while (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++)); do
ozvě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
# něco
Hotovo

Například následující skript vytiskne „ahoj svět“ pětkrát.

pro i v 1… 5; dělat
ozvě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ělat
ozvě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++)); do
pro ((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 ; dělat
# něco
Hotovo

V následujícím příkladu skript pětkrát vytiskne „hello world“.

num = 1
while [$ 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 = 1
num_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 [ ]; dělat
# 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 = 1
do [$ 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++)); do
ozvě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.

  • Bash nekonečná smyčka
  • Vstup uživatele skriptu Bash
  • Bash funkce vracející pole

Šťastný výpočetní výkon!

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...