logo

Bash While Loop

Šioje temoje parodėme, kaip naudoti while loop teiginį „Bash Script“.

The bash while kilpa gali būti apibrėžtas kaip valdymo srauto sakinys, leidžiantis pakartotinai vykdyti nurodytą komandų rinkinį tol, kol taikoma sąlyga įvertinama kaip tiesa. Pavyzdžiui, galime daug kartų paleisti echo komandą arba tiesiog perskaityti tekstinį failą eilutė po eilutės ir apdoroti rezultatą naudodami ciklą „Bash“.

„Bash While Loop“ sintaksė

„Bash while“ ciklas yra tokio formato:

c++ prototipo funkcija
 while [ expression ]; do commands; multiple commands; done 

Aukščiau pateikta sintaksė taikoma tik tuo atveju, jei reiškinyje yra viena sąlyga.

Jei į išraišką reikia įtraukti kelias sąlygas, while ciklo sintaksė bus tokia:

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

Nors ciklo vienos eilutės sintaksė gali būti apibrėžta taip:

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

Yra keletas pagrindinių teiginio „while loop“ punktų:

  • Sąlyga patikrinama prieš vykdant komandas.
  • Ciklas „while“ taip pat gali atlikti visą darbą, kaip ir „kilpa“.
  • Komandos tarp „padaryti“ ir „atlikta“ vykdomos pakartotinai, kol sąlyga įvertinama kaip tiesa.
  • „While“ ciklo argumentai gali būti loginė išraiška.

Kaip tai veikia

Nors kilpa yra riboto įėjimo ciklas. Tai reiškia, kad sąlyga patikrinama prieš vykdant while ciklo komandas. Jei sąlygos įvertinimas yra teisingas, vykdomas komandų rinkinys, einantis po šios sąlygos. Kitu atveju ciklas nutraukiamas, o programos valdymas suteikiamas kitai komandai po sakinio „atlikta“.

„Bash While Loop“ pavyzdžiai

Toliau pateikiami keli bash while ciklo pavyzdžiai:

Nors kilpa su viena sąlyga

Šiame pavyzdyje ciklas while naudojamas su viena sąlyga išraiškoje. Tai yra pagrindinis while ciklo pavyzdys, kuris spausdins skaičių serijas pagal vartotojo įvestį:

Pavyzdys

 #!/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.' 

Išvestis

Bash While Loop

Nors ciklas su keliomis sąlygomis

Toliau pateikiamas while ciklo pavyzdys su keliomis išraiškos sąlygomis:

Pavyzdys

 #!/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.' 

Išvestis

trinarinis operatorius java
Bash While Loop

Infinite While Loop

Begalinė kilpa yra kilpa, kuri neturi pabaigos ar pabaigos. Jei sąlyga visada vertinama kaip tiesa, ji sukuria begalinę kilpą. Ciklas bus vykdomas nuolat, kol jis bus priverstinai sustabdytas naudojant CTRL+C:

Pavyzdys

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

Aukščiau pateiktą scenarijų taip pat galime parašyti vienoje eilutėje taip:

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

Išvestis

Bash While Loop

Čia mes panaudojome integruotą komandą (:), kuri visada grąžina true. Taip pat galime naudoti integruotą komandą true, kad sukurtume begalinę kilpą, kaip nurodyta toliau:

Pavyzdys

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

Šis bash scenarijus taip pat pateiks tokią pat išvestį kaip ir aukščiau esantis begalinis scenarijus.

Pastaba: begalinės kilpos gali būti nutrauktos naudojant CTRL+C arba scenarijuje pridedant sąlyginį išėjimą.

Nors ciklas su pertraukos pareiškimu

Pertraukos sakinys gali būti naudojamas norint sustabdyti ciklą pagal taikomą sąlygą. Pavyzdžiui:

c programa stygų palyginimui

Pavyzdys

 #!/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 

Išvestis

Pagal scenarijų ciklas priskiriamas kartoti dešimt kartų. Tačiau po aštuonių kartojimo kartų yra sąlyga, kuri nutraukia iteraciją ir nutraukia ciklo ciklą. Po scenarijaus vykdymo bus rodoma tokia išvestis.

Bash While Loop

Nors ciklas su tęstiniu pareiškimu

Teiginį tęsti galima naudoti norint praleisti tam tikros sąlygos iteraciją while ciklo viduje.

Pavyzdys

 #!/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.' 

Išvestis

Bash While Loop

Nors kilpa su C stiliumi

Taip pat galime rašyti while kilpą bash scenarijuje taip pat panašiai kaip while kilpą C programavimo kalba.

Pavyzdys

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