Conas a Scríobh Bash BILE-Lúb

Orduithe, Comhréir, agus Samplaí

Is féidir leat seicheamh orduithe a fhorghníomhú trí iad a scríobh i gcomhad script agus ansin é a reáchtáil.

Is comhad téacs amháin comhad script, de ghnáth leis an síneadh comhad .SH, ina bhfuil seicheamh treoracha a d'fhéadfaí a chur i bhfeidhm freisin ón líne ordaithe ( bhlaosc ).

Cé Samplaí Lúb

Seo thíos sampla de lúb ar feadh tamaill. Nuair a dhéantar é a fhorghníomhú, déanfaidh an comhad script seo na huimhreacha 1 go 9 a phriontáil ar an scáileán. Tugann an t-am-ráiteas níos mó solúbthachta duit chun an coinníoll foirceanta a shonrú ná an for-loop .

#! / bin / bash count = 1 agus [$ count -le 9] an macalla "$ count" codlata 1 ((comhaireamh ++)) déanta

Mar shampla, is féidir leat an lúb gan teorainn a dhéanamh sa script roimhe seo trína ráiteas incriminte a fhágáil "((count ++))":

#! / bin / bash count = 1 agus [$ count -le 9] an macalla "$ count" codlata 1 déanta

Sosann an ráiteas "codlata 1" an fhorghníomhú ar feadh 1 dara ar gach athráiteas. Bain úsáid as aicearra méarchlár Ctrl + C chun an próiseas a fhoirceannadh.

Is féidir leat lúb gan teorainn a chruthú freisin trí colon a chur mar an riocht:

#! / bin / bash count = 1 while: do macalla "$ count" codlata 1 ((comhaireamh ++)) déanta

D'fhonn coinníollacha ilghnéitheacha a úsáid sa lúb fadtéarmach, caithfidh tú an nóta dúbailte lúibín cearnach a úsáid:

count = 1 done = 0 agus [[$ count -le 9] && [$ done == 0]] an macalla "$ count" codlata 1 ((comhaireamh ++)) má [$ count == 5]; ansin $ déanta = 1 déanta

Sa script seo, cuirtear an "athróg" inathraithe i 0 agus ansin socraigh 1 nuair a shroicheann an comhaireamh 5. Luaitear sa choinníoll lúb go leanfaidh an lúb fad agus a bheidh "comhaireamh" níos lú ná naoi agus tá "déanta" comhionann go nialas. Dá bhrí sin, bíonn na lúbanna amach nuair a bhíonn an líon cothrom 5.

Ciallaíonn "&&" loighciúil "agus" agus "||" ciallaíonn "loighciúil" nó ".

Tá nóta malartach maidir leis na conarthaí "agus" agus "nó" i gcoinníollacha "-a" agus "-o" le lúibíní cearnacha amháin. An coinníoll thuas:

[[$ count -le 9] && [$ done == 0]]

... a athscríobh mar:

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

De ghnáth, déantar comhad téacs a léamh le lúb fada. Sa sampla seo a leanas, léann an script bash an líne ábhar trí líne comhad ar a dtugtar "inventory.txt:"

COMHAD = inventory.txt exec 6

Sannann an chéad líne ainm an chomhaid ionchuir don athróg "COMHAD". Sábhálann an dara líne an "ionchur caighdeánach" sa tuairisceoir comhad "6" (d'fhéadfadh sé a bheith ar aon luach idir 3 agus 9). Déantar é seo ionas gur féidir "ionchur caighdeánach" a chur ar ais chun tuairisceoir "0" a chomhdú ag deireadh an script (féach an ráiteas "exec 0 Sa 3ú líne a shanntar an comhad ionchuir chun tuairiscí comhad" 0, "a úsáidtear le haghaidh ionchur caighdeánach. Ansin, léann an ráiteas "léamh" líne ón gcomhad ar gach athróg agus sannann sé leis an athróg "líne1".

D'fhonn lúb tréimhsí a bhaint amach roimh ré, is féidir leat an ráiteas briseadh seo a úsáid mar seo:

comhaireamh = 1 déanta = 0 agus [$ count -le 9] an macalla "$ count" codlata 1 ((comhaireamh ++)) más rud é [$ count == 5] ansin déan an macalla críochnaithe a chríochnú

Déanann an ráiteas briseadh scipeáil ar fhorghníomhú an chláir go dtí deireadh agus déanann sé aon ráiteas a leanúint ina dhiaidh sin. Sa chás seo, déanfar an ráiteas "macalla críochnaithe".

Ar an láimh eile, níl an ráiteas leanúnach, ach amháin an chuid eile den ráiteas lúb fadtéarmach ar an athráiteas reatha agus go dtéann sé go díreach chuig an athuair eile:

count = 1 done = 0 agus [$ count -le 9] codlata 1 ((comhaireamh ++)) más rud é [$ count == 5] leanúint ar aghaidh "$ count" déanta macalla críochnaithe

Sa chás seo, déantar an ráiteas "leanúint" a fhorghníomhú nuair a shroicheann an "chomhaireamh" athraitheach 5. Ciallaíonn sé seo nach ndéanfar an ráiteas ina dhiaidh sin (macalla "$ count") ar an athráiteas seo (nuair a bhíonn luach "comhaireamh" 5).