Mga utos, Syntax, at Mga Halimbawa
Maaari mong isagawa ang isang pagkakasunud-sunod ng mga utos sa pamamagitan ng pagsusulat ng mga ito sa isang script file at pagkatapos ay patakbuhin ito.
Ang isang file na script ay isang tekstong file lamang, kadalasang may extension ng .H file, na naglalaman ng isang pagkakasunud-sunod ng mga tagubilin na maaari ring isagawa mula sa command line ( shell ).
Habang Mga Halimbawa ng Loop
Sa ibaba ay isang halimbawa ng isang habang loop. Kapag naisagawa, ang script na file na ito ay i-print ang mga numero 1 hanggang 9 sa screen. Ang habang-pahayag ay nagbibigay sa iyo ng higit na kakayahang umangkop para sa pagtukoy ng kondisyon ng termination kaysa sa for-loop .
#! / bin / bash count = 1 habang [$ count -le 9] gawin echo "$ count" sleep 1 ((count ++)) tapos naHalimbawa, maaari mong gawin ang nakaraang script ng isang walang katapusang loop sa pamamagitan ng pag-omit sa pahayag ng increment "((count ++))":
#! / bin / bash count = 1 habang [$ count -le 9] gawin echo "$ count" sleep 1 doneAng pahayag ng "sleep 1" ay nagpapatigil sa pagpapatupad ng 1 segundo sa bawat pag-ulit. Gamitin ang shortcut ng keyboard ng Ctrl + C upang wakasan ang proseso.
Maaari ka ring lumikha ng isang walang katapusang loop sa pamamagitan ng paglalagay ng colon bilang kondisyon:
#! / bin / bash count = 1 habang: gawin echo "$ count" sleep 1 ((count ++)) tapos naUpang magamit ang maraming kundisyon sa habang-loop, kailangan mong gamitin ang double square bracket notasyon:
count = 1 done = 0 habang [[$ count -le 9] && [$ done == 0]] gawin echo "$ count" sleep 1 ((count ++)) kung [$ count == 5]; pagkatapos $ tapos = 1 fi tapos naSa script na ito, ang variable na "tapos na" ay sinimulan sa 0 at pagkatapos ay itakda sa 1 kapag ang bilang ay umabot sa 5. Ang kalagayan ng loop ay nagpapahayag na ang habang loop ay magpapatuloy hangga't ang "count" ay mas mababa sa siyam at "tapos" ay pantay sa zero. Kaya ang mga loop ay lumabas kapag ang bilang ay katumbas ng 5.
Ang "&&" ay nangangahulugang lohikal na "at" at "||" ay nangangahulugang lohikal "o".
Ang isang alternatibong notasyon para sa mga kondisyon "at" at "o" sa mga kondisyon ay "-a" at "-o" na may iisang parisukat na mga bracket. Ang kalagayan sa itaas:
[[$ count -le 9] && [$ done == 0]]... maaaring muling isulat bilang:
[$ count -le 9] -a [$ done == 0]Ang pagbabasa ng isang tekstong file ay karaniwang ginagawa sa isang habang loop. Sa sumusunod na halimbawa, binabasa ng script ng bash ang mga nilalaman sa pamamagitan ng linya ng isang file na tinatawag na "inventory.txt:"
FILE = inventory.txt exec 6Inilalaan ng unang linya ang input file name sa variable na "FILE". Ang ikalawang linya ay nagse-save ng "karaniwang input" sa file descriptor "6" (maaaring ito ay anumang halaga sa pagitan ng 3 at 9). Ginagawa ito upang ang "karaniwang input" ay maibalik sa file descriptor "0" sa dulo ng script (tingnan ang pahayag na "exec 0" Sa ika-3 linya ang input file ay itinalaga sa file descriptor "0," na ginagamit para sa karaniwang input. Ang pahayag ng "read" ay binabasa ang isang linya mula sa file sa bawat pag-ulit at inilalaan ito sa variable na "line1".
Upang maagang lumabas sa isang habang-loop, maaari mong gamitin ang break na pahayag tulad nito:
count = 1 done = 0 habang [$ count -le 9] gawin echo "$ count" matulog 1 ((count ++)) kung [$ count == 5] pagkatapos ay i-break fi tapos echo TaposAng pahayag ng pahinga ay nagpapatakbo ng pagpapatupad ng programa hanggang sa dulo habang ang loop at nagsasagawa ng anumang mga pahayag na sumusunod dito. Sa kasong ito, ang pahayag na "echo Finished."
Ang patuloy na pahayag, sa kabilang banda, ay naglalampas lamang sa natitirang bahagi ng habang pahayag ng loop ng kasalukuyang pag-ulit at direktang jumps sa susunod na pag-ulit:
count = 1 done = 0 habang [$ count -le 9] matulog 1 ((count ++)) kung [$ count == 5] pagkatapos ay magpatuloy fi echo "$ count" done echo FinishedSa kasong ito, ang pagpapatupad ng "magpatuloy" ay isinasagawa kapag ang variable na "count" ay umaabot sa 5. Ito ay nangangahulugang ang kasunod na pahayag (echo "$ count") ay hindi isinasagawa sa pag-ulit na ito (kapag ang halaga ng "count" ay 5).