V tejto téme sme ukázali, ako používať príkaz while v skripte Bash.
The bash while loop možno definovať ako príkaz riadiaceho toku, ktorý umožňuje vykonávať danú množinu príkazov opakovane, pokiaľ sa aplikovaná podmienka vyhodnotí ako pravdivá. Napríklad môžeme buď spustiť príkaz echo mnohokrát, alebo len prečítať textový súbor riadok po riadku a výsledok spracovať pomocou while loop v Bash.
Syntax Bash While Loop
Cyklus Bash while má nasledujúci formát:
statické kľúčové slovo v jazyku Java
while [ expression ]; do commands; multiple commands; done
Vyššie uvedená syntax je použiteľná len vtedy, ak výraz obsahuje jednu podmienku.
Ak do výrazu treba zahrnúť viacero podmienok, syntax cyklu while bude nasledovná:
while [ expressions ]; do commands; multiple commands; done
Jednoriadkovú syntax cyklu while možno definovať ako:
while [ condition ]; do commands; done while control-command; do Commands; done
Existuje niekoľko kľúčových bodov príkazu „while loop“:
- Pred vykonaním príkazov sa skontroluje stav.
- Slučka „pričom“ je tiež schopná vykonať všetku prácu, ktorú dokáže vykonať „slučka“.
- Príkazy medzi 'do' a 'done' sa opakovane vykonávajú, pokiaľ sa podmienka vyhodnotí ako pravdivá.
- Argumenty pre cyklus „while“ môžu byť boolovský výraz.
Ako to funguje
Cyklus while je slučka s obmedzeným vstupom. Znamená to, že podmienka sa kontroluje pred vykonaním príkazov cyklu while. Ak sa podmienka vyhodnotí ako pravdivá, vykoná sa množina príkazov nasledujúcich za touto podmienkou. V opačnom prípade sa cyklus ukončí a riadenie programu je odovzdané inému príkazu, ktorý nasleduje po príkaze „hotovo“.
Príklady cyklu Bash While
Nasleduje niekoľko príkladov cyklu bash while:
Kým slučka s jedinou podmienkou
V tomto príklade sa slučka while používa s jednou podmienkou vo výraze. Je to základný príklad cyklu while, ktorý vytlačí sériu čísel podľa vstupu používateľa:
Prí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ýkon
Kým slučka s viacerými podmienkami
Nasleduje príklad cyklu while s viacerými podmienkami vo výraze:
Prí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ýkon
rj12 vs rj11
Infinite While Loop
Nekonečná slučka je slučka, ktorá nemá koniec ani ukončenie. Ak sa podmienka vždy vyhodnotí ako pravdivá, vytvorí sa nekonečná slučka. Cyklus bude prebiehať nepretržite, kým nebude násilne zastavený pomocou CTRL+C:
Príklad
#!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done
Vyššie uvedený skript môžeme tiež napísať do jedného riadku ako:
#!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done
Výkon
Tu sme použili vstavaný príkaz (:), ktorý vždy vráti hodnotu true. Môžeme tiež použiť vstavaný príkaz true na vytvorenie nekonečnej slučky, ako je uvedené nižšie:
Príklad
#!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done
Tento bash skript tiež poskytne rovnaký výstup ako vyššie uvedený nekonečný skript.
Poznámka: Nekonečné cykly je možné ukončiť pomocou CTRL+C alebo pridaním nejakého podmieneného ukončenia v rámci skriptu.
Kým slučka s príkazom Break
Príkaz break sa môže použiť na zastavenie cyklu podľa použitej podmienky. Napríklad:
Prí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ýkon
Podľa skriptu je slučke priradená desaťkrát iterovať. Po ôsmich iteráciách však existuje podmienka, ktorá preruší iteráciu a ukončí cyklus. Po vykonaní skriptu sa zobrazí nasledujúci výstup.
Kým slučka s príkazom pokračovať
Príkaz continue sa dá použiť na preskočenie iterácie pre konkrétnu podmienku v rámci cyklu while.
java indexof
Prí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ýkon
Kým Loop s C-Style
Slučku while môžeme napísať aj v bash skripte podobne ako slučku while v programovacom jazyku C.
Prí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></=>