logo

Bash While Loop

V tomto tématu jsme si ukázali, jak používat příkaz cyklu while ve skriptu Bash.

The smyčka bash while lze definovat jako příkaz řídicího toku, který umožňuje provádět danou sadu příkazů opakovaně, dokud se použitá podmínka vyhodnotí jako pravdivá. Například můžeme buď spustit příkaz echo mnohokrát, nebo jen přečíst textový soubor řádek po řádku a zpracovat výsledek pomocí smyčky while v Bash.

Syntaxe Bash While Loop

Smyčka Bash while má následující formát:

nbsp
 while [ expression ]; do commands; multiple commands; done 

Výše uvedená syntaxe je použitelná pouze v případě, že výraz obsahuje jedinou podmínku.

Pokud je třeba do výrazu zahrnout více podmínek, bude syntaxe cyklu while následující:

 while [ expressions ]; do commands; multiple commands; done 

Jednořádkovou syntaxi smyčky while lze definovat jako:

 while [ condition ]; do commands; done while control-command; do Commands; done 

Existuje několik klíčových bodů příkazu „while loop“:

  • Podmínka je zkontrolována před provedením příkazů.
  • Smyčka 'while' je také schopna vykonávat veškerou práci, kterou může udělat 'loop'.
  • Příkazy mezi 'do' a 'done' jsou opakovaně prováděny, dokud je podmínka vyhodnocena jako pravdivá.
  • Argumenty pro cyklus 'while' mohou být booleovský výraz.

Jak to funguje

Smyčka while je smyčka s omezeným vstupem. To znamená, že podmínka je zkontrolována před provedením příkazů cyklu while. Pokud se podmínka vyhodnotí jako pravdivá, provede se sada příkazů následujících po této podmínce. V opačném případě je smyčka ukončena a řízení programu je předáno druhému příkazu po příkazu 'hotovo'.

Příklady smyčky Bash While

Následuje několik příkladů smyčky bash while:

Zatímco smyčka s jedinou podmínkou

V tomto příkladu je smyčka while použita s jedinou podmínkou ve výrazu. Je to základní příklad smyčky while, která vytiskne řadu čísel podle zadání uživatele:

Příklad

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -le $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

Výstup

Bash While Loop

Zatímco smyčka s více podmínkami

Následuje příklad smyčky while s více podmínkami ve výrazu:

Příklad

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -lt $enum || $snum == $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

Výstup

jakou mám velikost monitoru
Bash While Loop

Infinite While Loop

Nekonečná smyčka je smyčka, která nemá žádný konec ani zakončení. Pokud se podmínka vždy vyhodnotí jako pravdivá, vytvoří nekonečnou smyčku. Smyčka bude probíhat nepřetržitě, dokud nebude násilně zastavena pomocí CTRL+C:

Příklad

 #!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done 

Výše uvedený skript můžeme také napsat na jeden řádek jako:

 #!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done 

Výstup

Bash While Loop

Zde jsme použili vestavěný příkaz (:), který vždy vrátí hodnotu true. Můžeme také použít vestavěný příkaz true k vytvoření nekonečné smyčky, jak je uvedeno níže:

Příklad

 #!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done 

Tento bash skript také poskytne stejný výstup jako výše uvedený nekonečný skript.

Poznámka: Nekonečné smyčky lze ukončit pomocí CTRL+C nebo přidáním podmíněného ukončení do skriptu.

Zatímco smyčka s příkazem Break

Příkaz break lze použít k zastavení smyčky podle použité podmínky. Například:

katrina kaif

Příklad

 #!/bin/bash #While Loop Example with a Break Statement echo 'Countdown for Website Launching...' i=10 while [ $i -ge 1 ] do if [ $i == 2 ] then echo 'Mission Aborted, Some Technical Error Found.' break fi echo '$i' (( i-- )) done 

Výstup

Podle skriptu je smyčka přiřazena k desetinásobné iteraci. Existuje však podmínka po osminásobné iteraci, která iteraci přeruší a smyčku ukončí. Po provedení skriptu se zobrazí následující výstup.

Bash While Loop

Zatímco smyčka s příkazem Continue

Příkaz continue lze použít k přeskočení iterace pro konkrétní podmínku uvnitř cyklu while.

Příklad

 #!/bin/bash #While Loop Example with a Continue Statement i=0 while [ $i -le 10 ] do ((i++)) if [[ '$i' == 5 ]]; then continue fi echo 'Current Number : $i' done echo 'Skipped number 5 using Continue Statement.' 

Výstup

Bash While Loop

Zatímco smyčka s C-Style

Můžeme také napsat while smyčku v bash skriptu podobně jako while smyčku v programovacím jazyce C.

Příklad

 #!/bin/bash #While loop example in C style i=1 while((i <= 10)) do echo $i let i++ done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/46/bash-while-loop-6.webp" alt="Bash While Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use while loop statement in Bash to perform specific tasks.</p> <hr></=>