Android

Bash while loop

PHP Tutorials | PHP For Beginners

PHP Tutorials | PHP For Beginners

Obsah:

Anonim

Smyčky jsou jedním ze základních konceptů programovacích jazyků. Smyčky jsou užitečné, pokud chcete spouštět řadu příkazů tolikrát, dokud není splněna určitá podmínka.

Ve skriptovacích jazycích, jako je Bash, jsou smyčky užitečné pro automatizaci opakujících se úkolů. Existují 3 základní konstrukty smyčky v skriptování Bash, pro smyčku, zatímco smyčku a do smyčky.

Tento tutoriál vysvětluje základy smyček while v Bash, stejně jako příkazy break a pokračovat ke změně toku smyčky.

Bash, zatímco smyčka

Smyčka while se používá k provádění dané sady příkazů neznámý početkrát, dokud se daná podmínka vyhodnotí jako true.

Bash while loop má následující podobu:

while do done

Podmínka je vyhodnocena před provedením příkazů. Pokud se podmínka vyhodnotí jako true, jsou provedeny příkazy. Jinak, pokud se podmínka vyhodnotí jako false, smyčka bude ukončena a řízení programu bude předáno následujícímu příkazu.

V příkladu níže smyčka vytiskne při každé iteraci aktuální hodnotu proměnné i a zvýší proměnnou o jednu.

i=0 while do echo Number: $i ((i++)) done

Tue loop iterates, pokud i je menší nebo rovno než dva. Bude produkovat následující výstup:

Number: 0 Number: 1 Number: 2

Nekonečná, zatímco smyčka

Nekonečná smyčka je smyčka, která se opakuje donekonečna a nikdy nekončí. Pokud se stav vždy vyhodnocuje jako pravdivý, dostanete nekonečnou smyčku.

V následujícím příkladu používáme vestavěný příkaz : který vždy vrací true, aby vytvořil nekonečnou smyčku. Můžete také použít true zabudovaný příkaz nebo jakýkoli jiný příkaz, který vždy vrátí true.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

Smyčka while výše bude fungovat neomezeně dlouho. Smyčku můžete ukončit stisknutím CTRL+C

Zde je ekvivalent jedné řádky:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Přečtěte si řádek po řádku

Jedním z nejčastějších způsobů použití smyčky while je čtení souboru, datového toku nebo proměnné řádek po řádku.

V následujícím příkladu smyčka while načte řádek souboru /etc/passwd řádek po řádku a vytiskne každý řádek.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Místo ovládání smyčky while s podmínkou používáme přesměrování vstupu ( < "$file" ), abychom předali soubor read což je příkaz, který řídí smyčku. Smyčka while poběží, dokud není načten poslední řádek.

Při čtení souboru řádek po řádku vždy použijte možnost read s volbou -r abyste zabránili zpětnému lomítku jako únikový znak.

Ve výchozím nastavení read příkaz oříznutí úvodních / koncových znaků mezery (mezery a karty). Chcete-li tomuto chování zabránit, použijte volbu IFS= před příkazem read

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Přerušení a pokračování prohlášení

Příkazy break a pokračovat lze použít k řízení provádění smyčky while.

Prohlášení o přerušení

Příkaz break ukončí aktuální smyčku a předá řízení programu příkazu, který následuje po ukončené smyčce. Obvykle se používá k ukončení smyčky, když je splněna určitá podmínka.

V následujícím příkladu bude provádění smyčky přerušeno, jakmile se aktuální iterovaná položka rovná 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Pokračovat v prohlášení

Příkaz pokračovat opustí aktuální iteraci smyčky a předá řízení programu další iteraci smyčky.

V následujícím níže, jakmile je aktuální iterovaná položka rovna 2 bude pokračovat příkaz, aby se provádění vrátilo na začátek smyčky a pokračovalo další iterací.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Závěr

Nyní byste měli dobře rozumět tomu, jak používat bash while loop.

terminál bash smyčky