V tej temi smo pokazali, kako uporabiti stavek zanke while v skriptu Bash.
The zanka bash while lahko definiramo kot stavek nadzornega toka, ki omogoča ponavljajoče se izvajanje danega nabora ukazov, dokler se uporabljeni pogoj oceni kot resničen. Na primer, lahko večkrat zaženemo ukaz echo ali samo preberemo besedilno datoteko vrstico za vrstico in obdelamo rezultat z uporabo zanke while v Bashu.
Sintaksa Bash While Loop
Bash while zanka ima naslednjo obliko:
pridruži se posodobitvi mysql
while [ expression ]; do commands; multiple commands; done
Zgornja sintaksa je uporabna le, če izraz vsebuje en sam pogoj.
Če je v izraz treba vključiti več pogojev, bo sintaksa zanke while naslednja:
while [ expressions ]; do commands; multiple commands; done
Enovrstično sintakso zanke while lahko definiramo kot:
while [ condition ]; do commands; done while control-command; do Commands; done
Obstaja nekaj ključnih točk izjave 'while loop':
- Pogoj se preveri pred izvedbo ukazov.
- Zanka 'while' je prav tako sposobna opraviti vse delo, kot ga lahko opravi 'zanka' for.
- Ukazi med 'do' in 'done' se ponavljajo, dokler je pogoj ocenjen kot resničen.
- Argumenti za zanko 'while' so lahko logični izrazi.
Kako deluje
Zanka while je zanka z omejenim vstopom. Pomeni, da se pogoj preveri pred izvedbo ukazov zanke while. Če je pogoj ovrednoten kot resničen, se izvede niz ukazov, ki sledijo temu pogoju. V nasprotnem primeru se zanka prekine in krmiljenje programa se dodeli drugemu ukazu, ki sledi stavku 'done'.
Bash While Loop Primeri
Sledi nekaj primerov zanke bash while:
Medtem ko zanka z enim pogojem
V tem primeru je zanka while uporabljena z enim pogojem v izrazu. Je osnovni primer zanke while, ki bo natisnila niz števil glede na uporabniški vnos:
Primer
#!/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.'
Izhod
Medtem ko zanka z več pogoji
Sledi primer zanke while z več pogoji v izrazu:
Primer
#!/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.'
Izhod
niz za klepet
Neskončna zanka while
Neskončna zanka je zanka, ki nima konca ali konca. Če je pogoj vedno ovrednoten kot resničen, ustvari neskončno zanko. Zanka se bo izvajala neprekinjeno, dokler ni prisilno ustavljena z uporabo CTRL+C:
Primer
#!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done
Zgornji skript lahko zapišemo tudi v eno vrstico kot:
#!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done
Izhod
Tukaj smo uporabili vgrajeni ukaz (:), ki vedno vrne true. Uporabimo lahko tudi vgrajeni ukaz true, da ustvarimo neskončno zanko, tako kot spodaj:
Primer
#!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done
Ta skript bash bo prav tako zagotovil enak rezultat kot zgornji neskončni skript.
Opomba: Neskončne zanke je mogoče prekiniti z uporabo CTRL+C ali z dodajanjem pogojnega izhoda znotraj skripta.
Medtem ko zanka s stavkom Break
Stavek break lahko uporabite za zaustavitev zanke glede na uporabljeni pogoj. Na primer:
Primer
#!/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
Izhod
java operater
V skladu s skriptom je zanki dodeljeno desetkratno ponavljanje. Toda po osemkratni ponovitvi obstaja pogoj, ki bo prekinil ponovitev in prekinil zanko. Po izvedbi skripta bo prikazan naslednji rezultat.
Medtem ko zanka s stavkom Continue
Stavek continue lahko uporabite za preskok ponovitve za določen pogoj znotraj zanke while.
Primer
#!/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.'
Izhod
Medtem ko Loop s C-Style
V skriptu bash lahko zapišemo tudi zanko while, podobno kot zanko while v programskem jeziku C.
Primer
#!/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></=>