Yadda za a Rubuta Bash Wuta-Makullan

Umurnai, Syntax, da Misalan

Za ka iya aiwatar da jerin umurnai ta hanyar rubuto su cikin fayil ɗin rubutun sa'an nan kuma a guje shi.

Fayil rubutun shine kawai fayil ɗin rubutu, yawanci tare da tsawo na .SH, wanda ya ƙunshi umarnin da za a iya kashe shi daga layin umurnin ( harsashi ).

Duk da yake misalai misalin

Da ke ƙasa akwai misali na wani lokaci madauki. Lokacin da aka kashe, wannan fayil na rubutun zai buga lambobin 1 zuwa 9 akan allon. Bayanan da ke cikin lokaci ya ba ka ƙarin sassauci don ƙayyade yanayin karewa fiye da madaidaicin .

#! / bin / bash count = 1 yayinda [$ count-9] ya sa "$ count" barci 1 ((count ++)) aka aikata

Alal misali, zaku iya yin rubutun baya da iyaka marar iyaka ta hanyar watsar da bayanin da ya rage "((count ++))":

#! / bin / bash count = 1 alhali kuwa [$ count-9] ya yi kira "$ count" barci 1 yi

Kalmar "bayanin barci" 1 ta dakatar da kisa don 1 na biyu a kan kowane lokaci. Yi amfani da gajerar hanyar Ctrl C na dan hanya don ƙare tsari.

Hakanan zaka iya ƙirƙirar ƙafa mara iyaka ta hanyar sa a matsayin ma'auni kamar yanayin:

#! / bin / bash count = 1 yayin da: yi "Kuɗi kuɗi" $ 1 ((count ++))

Domin yin amfani da yanayi mai yawa a cikin maimaitawa, dole ne ka yi amfani da ƙididdigin sakonni biyu:

count = 1 yi = 0 yayin da [[$ count -le 9] && [$ done == 0]] sa "$ count" barci 1 ((count ++) idan [$ count == 5]; to, $ yi = 1 fi aikata

A cikin wannan rubutun, an sanya ma'anar "aikatawa" zuwa 0 sa'an nan kuma saita zuwa 1 lokacin da ƙidaya ta kai 5. Maɗaukakin tsari ya furta cewa lokacin da madauki zai ci gaba har muddin "ƙidaya" ba kasa da tara kuma "aikata" daidai yake. ba kome ba. Sabili da haka madaukai suna fita lokacin da adadi ya daidaita 5.

"&&" na nufin ma'ana "da" da "||" yana nufin ma'ana "ko".

Bayanan da ake yi na "conjunctions" da "ko" ko "a cikin yanayi" -a "da" -o "tare da kwakwalwa guda ɗaya. Yanayin da ke sama:

[[$ count-9] && [$ aikata == 0]]

... za a iya sake rubutawa a matsayin:

[$ count-9] -a [$ done == 0]

Ana karanta fayilolin rubutu a yawancin lokaci tare da wani lokaci. A cikin misali mai zuwa, rubutun bash ɗin ya karanta layin rubutun ta hanyar layin fayil wanda ake kira "inventory.txt:"

FILE = inventory.txt exec 6

Layin farko yana sanya sunan sunan shigar da sunan "FILE". Hanya na biyu tana adana "shigarwar rubutu" a cikin rubutun fayil "6" (zai iya zama darajar tsakanin 3 da 9). An yi wannan ne don "iya shigar da" daidaitattun fayiloli zuwa fayil din "0" a ƙarshen rubutun (duba kalma "exec 0 A cikin layi na 3 an sanya fayil ɗin da aka shigar zuwa fayil din" 0, "wanda aka yi amfani dasu. don daidaitattun shigarwa Bayanan "karantawa" sa'an nan kuma karanta layi daga fayil a kan kowane tsinkaya kuma ya sanya shi zuwa madadin "line1".

Domin ya fita ba tare da wata hanya ba, za ka iya amfani da bayanin fassarar kamar wannan:

count = 1 yi = 0 yayin da [$ count-9] sa "$ count" barci 1 ((count ++)) idan [$ count == 5] sa'annan ka karya fiyatar da aka gama

Bayanan sanarwa ya kaddamar da kisa don aiwatarwa har zuwa karshen yayin da aka yi amfani da shi kuma yana aiwatar da kowane bayanan da ke biye da shi. A wannan yanayin, sanarwa "ƙirar ta gama."

Bayanan ci gaba, a gefe guda, yana tsallake kawai sauran bayanan yayin sanarwa na yanzu na farfadowa kuma yayi watsi da kai tsaye zuwa gaba na gaba:

count = 1 yi = 0 yayin da [$ count-9] yi barci 1 ((count ++) idan [$ count == 5] sa'an nan kuma ci gaba da farawa "$ count" an kammala saƙo.

A wannan yanayin, kalmar "ci gaba" ta cika lokacin da "ƙidaya" mai iyaka ya kai 5. Wannan yana nufin ma'anar bayani (ƙirar "$ count") ba a kashe a kan wannan lokacin ba (lokacin da "count" shine 5).