logo

Bash While Loop

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

Bash While Loop

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
Bash While Loop

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

Bash While Loop

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.

Bash While Loop

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

Bash While Loop

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