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
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
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
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.
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
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></=>