Android

Bash habang loop

Shell Scripting - For Loops

Shell Scripting - For Loops

Talaan ng mga Nilalaman:

Anonim

Ang mga loop ay isa sa mga pangunahing konsepto ng mga wika sa programming. Madaling magamit ang mga loop kung nais mong magpatakbo ng isang serye ng bilang ng mga utos hanggang sa natagpuan ang isang partikular na kondisyon

Sa mga wika ng script tulad ng Bash, ang mga loop ay kapaki-pakinabang para sa pag-automate ng paulit-ulit na mga gawain. Mayroong 3 pangunahing mga konstruksyon ng loop sa script ng Bash, para sa loop, habang loop, at hanggang sa loop.

Ipinapaliwanag ng tutorial na ito ang mga pangunahing kaalaman habang habang ang mga loop sa Bash pati na rin ang break at magpatuloy ng mga pahayag upang baguhin ang daloy ng isang loop.

Bash habang Loop

Ang habang ang loop ay ginagamit upang magsagawa ng isang naibigay na hanay ng mga utos ng isang hindi kilalang bilang ng mga beses hangga't ang ibinigay na kondisyon ay sinusuri ang totoo.

Ang Bash habang ang loop ay tumatagal ng sumusunod na form:

while do done

Nasuri ang kondisyon bago isagawa ang mga utos. Kung ang kondisyon ay sinusuri ang totoo, ang mga utos ay naisakatuparan. Kung hindi man kung susuriin ang kondisyon sa maling bula ay titatapos at ang control ng programa ay maipasa sa utos na sumusunod.

Sa halimbawang nasa ibaba, sa bawat pag-ulit na ang loop ay naglimbag ng kasalukuyang halaga ng variable i at pinapalaki ang variable ng isa.

i=0 while do echo Number: $i ((i++)) done

Tue loop iterates hangga't i ay mas mababa o pantay kaysa sa dalawa. Ito ay makagawa ng mga sumusunod na output:

Number: 0 Number: 1 Number: 2

Walang hanggan habang Loop

Ang isang walang hanggan na loop ay isang loop na paulit-ulit na walang hanggan at hindi magtatapos. Kung ang kondisyon ay palaging sinusuri ang totoo makakakuha ka ng isang walang katapusang loop.

Sa sumusunod na halimbawa ginagamit namin ang built-in na utos : na laging nagbabalik totoo upang lumikha ng isang walang hanggan na loop. Maaari mo ring gamitin ang true built-in na utos o anumang iba pang pahayag na palaging nagbabalik totoo.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

Ang habang sa itaas ay tatakbo nang walang hanggan. Maaari mong wakasan ang loop sa pamamagitan ng pagpindot sa CTRL+C

Narito ang isang katumbas na linya:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Magbasa ng isang File Line By Line

Ang isa sa mga pinaka-karaniwang paggamit ng habang ang loop ay upang basahin ang isang file, stream ng data o variable na linya sa pamamagitan ng linya.

Sa sumusunod na halimbawa habang binabasa ng loop ang /etc/passwd file line sa pamamagitan ng linya at i-print ang bawat linya.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Sa halip na kontrolin ang habang habang may kondisyon ay gumagamit kami ng pag-redirect ng input ( < "$file" ) upang maipasa ang isang file sa read kung saan ay ang utos na kumokontrol sa loop. Ang habang loop ay tatakbo hanggang sa huling linya ay basahin.

Kapag ang pagbabasa ng linya ng taludtod sa linya ay palaging gumamit ng read ang -r pagpipilian upang maiwasan ang backslash upang kumilos bilang isang character na makatakas.

Sa pamamagitan ng default na read utos na read ang nangungunang / trailing whitespace character (mga puwang at tab). Gamitin ang IFS= opsyon bago ang utos na read upang maiwasan ang pag-uugaling ito

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Break at Magpatuloy na Mga Pahayag

Ang break at magpatuloy na mga pahayag ay maaaring magamit upang makontrol ang habang pagpapatupad ng loop.

Pahayag ng Break

Tinatapos ng pahayag ng break ang kasalukuyang loop at ipinapasa ang control ng programa sa utos na sumusunod sa natapos na loop. Karaniwang ginagamit ito upang wakasan ang loop kapag natagpuan ang isang tiyak na kondisyon.

Sa sumusunod na halimbawa, ang pagpapatupad ng loop ay maaabala kapag ang kasalukuyang iterated na item ay katumbas ng 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Ipagpatuloy ang Pahayag

Ang patuloy na pahayag ay lumabas sa kasalukuyang pag-iilaw ng isang loop at ipinapasa ang kontrol sa programa sa susunod na pag-iilaw ng loop.

Sa mga sumusunod sa ibaba, sa sandaling ang kasalukuyang iterated item ay katumbas ng 2 ang patuloy na pahayag ay magiging sanhi ng pagpapatupad na bumalik sa simula ng loop at magpatuloy sa susunod na pag-ulit.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Konklusyon

Sa ngayon dapat kang magkaroon ng isang mahusay na pag-unawa sa kung paano gamitin ang bash habang loop.

terminal ng bash loop