Paano Gumamit ng BASH para sa Loop



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Ang isa sa mga pinaka-pangunahing trick kapag ang pag-akda ng bash script ay nagsasangkot ng paggawa ng isang loop upang maaari kang magkaroon ng isang tiyak na gawain awtomatikong naisagawa ng maraming beses. Sa paglaon, ang loop ay makakarating sa isang paunang natukoy na kondisyon ng pagsubok at biglang tumigil sa pagpapatupad. Ang mga loop na tulad nito ay gagana nang perpekto sa bash sa Linux at macOS pati na rin ang bash shell sa loob ng Windows 10 at kahit na ang iba't ibang mga shell sa FreeBSD. Naturally, maaari kang magsulat ng anumang utos na gusto mo sa anumang loop at mapanatili ang anumang proseso sa anumang dami ng oras na gusto mo. Habang magsusulat kami ng ilang napaka-simpleng mga loop, maaari mong gamitin ang mga kasanayang ito sa may-akda ng anumang uri ng mga script na nais mo.



Mayroong maraming mga paraan upang simulang magsulat ng isang script, ngunit para sa talakayang ito ipalagay namin na binuksan mo ang isang prompt ng utos alinman sa pamamagitan ng paghahanap para sa terminal sa Dash, sa pamamagitan ng pag-click dito sa mga menu ng KDE, MATE, LX o Whisker o sa pamamagitan ng pagpindot sa Ctrl, Alt at T nang sabay. Habang tatalakayin namin ang vi / vim at nano bilang mga editor, ang isyu kung aling editor ang gagamitin ay personal at maaari kang gumana sa kung anuman ang komportable sa iyo.



Paraan 1: Ang hanggang sa Loop

Marahil ang pinaka-pangunahing loop sa bash ay ang hanggang loop. Panatilihin nito ang pagpapatupad ng mga utos hanggang sa maging totoo ang kundisyon ng pagsubok na itinakda mo. Ipagpapalagay namin na ginamit mo ang alinman sa nano o vi upang buksan ang isang walang-file na file na tinatawag hanggang sa.sh at handa nang magpasok ng sariwang teksto dito. Gagawa lang kami ng isang bagay na bibilang sa 20 sa iyong terminal upang mapanatili itong madali sa una.



Magsimula sa pamamagitan ng pagta-type sa sumusunod:

#! / bin / bash

n = 0



hanggang sa [$ n -gt 20]

gawin

echo $ n

((n ++))

tapos na

Kung gumagamit ka ng nano, pagkatapos ay i-save ito sa pamamagitan ng pagpindot sa Ctrl at pagkatapos ay itulak ang O at sa wakas X upang lumabas. Gustong itulak ng mga gumagamit ng vi ang pagtakas pagkatapos mag-type: wq upang makatipid at umalis.

Susunod na uri chmod + x hanggang saLoop sa prompt upang maisagawa ito at pagkatapos ay i-type ./untilLoop upang patakbuhin ito. Sa sandaling tumakbo ito, panatilihin ng loop ang pag-print ng mga bagong numero sa iyong terminal hanggang sa ang variable ay makakakuha ng 20.

Sa pamamagitan ng paraan, ang unang linya ay nagsasabi sa iyong kapaligiran kung aling shell ang mai-load kapag nagtatrabaho sa mga script na ito. Ang ilang mga programmer ay pinapayuhan lamang ang paggamit ng #! / Bin / sh upang matiyak na ang iyong script ay sumusunod sa ilang mga pamantayan ng POSIX, ngunit ang mga simpleng script na ito ay hindi dapat magkaroon ng anumang problema na tumatakbo sa karamihan ng mga modernong system.

Paraan 2: Ang para sa Loop

Tinitingnan ng isang para sa loop ang bawat item sa isang naibigay na listahan at pagkatapos ay gumaganap ng isang naibigay na hanay ng mga utos sa listahang iyon. Gagawa kami ng isa na naglilimbag ng ilang mga pangalan ng operating system ngunit tandaan muli na maaari kang gumawa ng anumang bagay dito kung nais mo.

Mag-type din nano forLoop o namin forLoop sa command prompt at simulang ipasok ang sumusunod na script. Ang mga gumagamit ng vi ay kailangang magpasok ng insert mode bago nila ito gawin.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

para sa unix sa $ unices

gawin

echo $ unix

tapos na

I-save muli ang file gamit ang alinman sa Ctrl + O at pagkatapos ang paraan ng Ctrl + X sa nano o ang Esc pagkatapos: wq na paraan sa vi bago maglabas ng utos chmod + x para saLoop upang maisagawa ito. Kapag mayroon ka na, patakbuhin ito sa pamamagitan ng pagta-type ./forLoop sa prompt. Pinipilit ng loop para sa utos ng echo na gumana sa bawat isa sa mga item sa variable ng mga unice. Maaari mong, sa sandaling muli, palitan ang listahang iyon ng anumang pagtatalo at palitan ang echo ng anumang utos upang i-automate ang mga mahahabang proseso.

Paraan 3: Ang habang Loop

Simulang i-edit ang isang pangatlong file na tinatawag habangLoop gamit ang nano, vi o alinman sa iba pang mga editor na nais mong gamitin. Kung mas gugustuhin mong gumamit ng isang graphic na editor ng teksto, maaari mo ring gawin iyon sa alinman sa mga proyektong ito hangga't tiyakin mong ilagay ang file sa parehong direktoryo na nagtatrabaho ka mula sa loob ng command prompt .

Sa loob ng file na ito, gugustuhin mong idagdag ang mga linya:

#! / bin / bash

n = 0

habang [$ n -le 20]

gawin

echo $ n

((n ++))

tapos na

I-save ang file sa parehong paraan na nai-save mo ang iba at pagkatapos ay lumabas sa iyong text editor. Kapag lumabas ka na, pagkatapos ay maglabas ng utos chmod + x habangLoop upang payagan kang isagawa ito at pagkatapos ay tumakbo ./ habangLoop upang patakbuhin ito. Makikita mo ang parehong output na lumabas sa script ng hanggangLoop mula sa unang pamamaraan dahil nabibilang ito mula 0 hanggang 20 nang mas malamang sa isang segundo na nahati.

Ito ay isang mahusay na pagpapakita ng katotohanang mayroong higit sa isang paraan upang magawa ang mga bagay sa tuwing nakikipagtulungan ka sa mga loop sa ganitong paraan. Bagama't walang teknikal na maling paraan upang magawa ito, marahil ay mahahanap mo ang mga may-akda ng script na inaangkin na dapat mong isulat ang iyong mga script nang malapit sa paraan ng wika ng C programming na gumawa ng mga bagay o kahalili, maaaring imungkahi ng iba na hindi mo ito dapat gawin. Sa totoo lang, marahil maraming tamang paraan upang malutas ang isang problema.

Huwag mag-atubiling tanggalin ang iyong mga script kapag tapos ka na sa pagsasanay sa kanila.

Basahin ang 3 minuto