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