Tosaitheoirí Treoir Chun BASH - Ag Comparáid Rudaí

01 de 08

Tosaitheoirí Treoir Chun BASH - Ag Comparáid Rudaí

Teagaisc BASH - Snáitheanna a Fhorbairt.

Sa chuid roimhe seo den teagasc BASH, d'fhéachomar ar ráitis choinníollach .

Bhí an treoir sin an-fhada ach níor léirigh sé ach conas sreabhadh an loighic a rialú. Léiríonn an treoir seo na bealaí éagsúla inar féidir leat athróga a chur i gcomparáid.

Taispeánann an íomhá thuas an chéad shampla i dtreoir na seachtaine seo:

#! / bin / bash

ainm1 = "gary"
ainm2 = "bob"

más rud é ["$ name1" = "$ name2"]
ansin
macalla "na comharthaí ainmneacha"
eile
macalla "nach gcomhlíonann na hainmneacha"
fi


Sa script thuas sainmhínigh mé dhá athróg ar a dtugtar ainm1 agus ainm2 agus thug siad na luachanna "gary" agus "bob" dóibh. Ós rud é go bhfuil na hathróga idir na marcanna luachanna, is iad na hathróga sreang a thugtar orthu a thagann chun bheith níos ábhartha mar a théann an teagasc ar aghaidh.

Déanann an script go léir comparáid idir luach ainm $ 1 agus $ ainm2 agus má mheaitseálann siad aschur an teaghrán "comhoiriúnach na n-ainmneacha" agus mura gcuireann siad an téad aschur "níl na hainmneacha comhoiriúnacha".

Tá an luachanna thart ar na hathróga $ name1 agus $ name2 tábhachtach mar má tá luach na gceachtar acu leagtha síos ansin beidh an script fós ag obair.

Mar shampla, más rud é nach socraíodh $ name1 ansin bheadh ​​tú ag comparáid idir "" agus "bob". Gan na marcanna luachanna bheadh ​​tú fágtha le = "bob" a mharaíonn go soiléir.

Is féidir leat an nodaireacht! = A úsáid freisin chun a shainmhíniú nach ionann leis mar seo a leanas:

más rud é ["$ name1"! = "$ name2"]

02 de 08

Treoir Thosaitheoirí A BASH - Comparáid a dhéanamh ar Thráchtanna

Teagaisc BASH - Snáitheanna a Fhorbairt.

Sa sampla thuas, déanann an tástáil comparáid idir an dá shraith chéanna agus iarrann sé an cheist a thagann gary roimh gach san aibítir?

Is léir gurb é an freagra uimh.

Tugann an script isteach níos lú ná oibreoir (<). Toisc go n-úsáidtear an t-oibreoir níos lú freisin le haghaidh athfhriotail, caithfidh tú éalú le slais (\) le haghaidh níos lú ná sin agus is é an fáth atá sa script thuas ná "$ name1" \ <"$ name2".

Is léir go bhfuil an os coinne níos lú ná mar a tharla. In ionad úsáid a bhaint as \ .

Mar shampla

más rud é ["$ name1" \> "$ name2"]

03 de 08

Treoir Thosaitheoirí A BASH - Comparáid a dhéanamh ar Thráchtanna

Teagaisc BASH - Snáitheanna a Fhorbairt.

Más mian leat a thástáil an bhfuil luach ag athróg is féidir leat an tástáil seo a leanas a úsáid:

más rud é [-n $ name2]

Sa script thuas, scrúdaigh mé an ndearnadh luach $ $2 a thabhairt agus más rud é nach ndéanann sé an teachtaireacht "Níl aon bob, ní raibh gach chuma ann".

04 de 08

Treoir Thosaitheoirí A BASH - Comparáid a dhéanamh ar Thráchtanna

Teagaisc BASH - Snáitheanna a Fhorbairt.

Ar an sleamhnán seo caite chlúdaigh muid an bhfuil athróg leagtha amach nó nach bhfuil. Uaireanta, b'fhéidir go bhféadfaí athróg a shocrú ach ní fhéadfadh luach a bheith aige i ndáiríre.

Mar shampla:

ainm1 = ""

Chun a thástáil an bhfuil luach ag athróg nó nach bhfuil (ie fad nialas) úsáid -z mar seo a leanas:

más rud é [-z $ name1]

Sa script thuas, leag mé $ ainm1 le sreang fad nialas agus ansin é a chur i gcomparáid le húsáid -z. Má tá $ name1 náid ar fad, taispeánfar an teachtaireacht "gary for the evening".

05 de 08

Treoir Tosaitheoirí BASH - Comparáid Uimhreacha

Teagaisc BASH - Comparáid Uimhreacha.

Go dtí seo, bhí na comparáidí uile le haghaidh teaghráin. Cad mar gheall ar chomparáid a dhéanamh ar uimhreacha?

Taispeánann an script thuas sampla de dhá uimhir a chomparáid:

#! / bin / bash

a = 4
b = 5

más rud é [$ a = $ b]
ansin
macalla "4 = 5"
eile
macalla "4 nach ionann 5"
fi

Chun athróg a shocrú a bheith ina líon ach é a shocrú gan marcanna luachanna. Is féidir leat comparáid a dhéanamh idir na huimhreacha agus comhartha comhionann.

Is fearr liom áfach an t-oibreoir seo a leanas a úsáid chun dhá uimhir a chur i gcomparáid:

Más rud é [$ a -eq $ b]

06 de 08

Treoir Tosaitheoirí BASH - Comparáid Uimhreacha

Teagaisc BASH - Comparáid Uimhreacha.

Más mian leat comparáid a dhéanamh idir an bhfuil uimhir níos lú ná líon eile is féidir leat an oibritheoir níos lú ná an t-oibreoir (<) a úsáid. Mar is amhlaidh le teaghráin caithfidh tú éalú a dhéanamh ar an oibreoir níos lú ná Slais. (\ <).

Is bealach níos fearr chun comparáid a dhéanamh idir uimhreacha ná an nóta seo a leanas a úsáid ina ionad:

Mar shampla:

más rud é [$ a -lt $ b]

más rud é [$ a -le $ b]

más rud é [$ a -ge $ b]

más rud é [$ a -gt $ b]

07 de 08

Treoir Tosaitheoirí BASH - Comparáid Uimhreacha

Teagaisc BASH - Comparáid Uimhreacha.

Mar fhocal scoir don treoir seo, más mian leat a thástáil an bhfuil dhá uimhir difriúil is féidir leat úsáid a bhaint as oibreoirí níos lú ná agus níos mó ná (<>) nó - mar seo a leanas:

más rud é [$ a <> $ b]

más rud é [$ a -ne $ b]

08 de 08

Tosaitheoirí Treoir Chun BASH - Oibreoirí Comparáide - Achoimre

Má chaill tú na chéad trí chuid den treoir seo, is féidir leat iad a fháil trí chliceáil ar na naisc seo a leanas:

Sa chéad chuid eile den treoir beidh mé ag clúdach uimhríocht.