Débutan Gid Pou BASH - Konpare bagay

01 nan 08

Débutan Gid Pou BASH - Konpare bagay

Leson patikilye BASH - Konparezon strings.

Nan pati anvan an nan leson patikilye a BASH nou gade deklarasyon kondisyonèl .

Gid sa a te trè long men vrèman sèlman te montre kouman pou kontwole koule nan lojik. Gid sa a montre diferan fason ou ka konpare varyab yo.

Imaj ki anwo a montre premye egzanp lan nan gid semenn sa a:

#! / bin / bash

non1 = "gary"
non2 = "bob"

si ["$ name1" = "$ name2"]
lè sa a
eko "matche ak non"
lòt moun
eko "non yo pa matche ak"
fi


Nan script ki pi wo a mwen te defini de varyab ki rele name1 ak name2 ak plase yo valè "gary" ak "bob". Kòm varyab yo ki genyen ant sitasyon pi ba yo rele yo varyab varyab ki vin pi enpòtan kòm leson patikilye a ale sou.

Tout script la se konpare valè $ name1 ak $ name2 epi si yo matche ak pwodiksyon fisèl la "matche ak non" epi si yo pa pwodiksyon fisèl la "non yo pa matche ak".

Kantizasyon ki make nan varyab $ names1 ak $ name2 yo enpòtan paske si valè a nan youn nan yo pa te mete Lè sa a, script la ap toujou travay.

Pou egzanp si $ name1 pa janm mete lè sa a ou ta konpare "" ak "Bob". San yo pa mak yo sitasyon ou ta dwe kite ak = "bob" ki byen klè echwe.

Ou ka itilize tou! = Notasyon defini pa egal a jan sa a:

si ["$ name1"! = "$ name2"]

02 nan 08

Débutan Gid pou BASH - Konparezon strings

Leson patikilye BASH - Konparezon strings.

Nan egzanp lan pi wo a tès la konpare menm de strings yo epi mande kesyon an Gary vini anvan Bob nan alfabè a?

Klèman repons lan se non.

Script la entwodui mwens pase operatè a (<). Kòm operatè a mwens pase tou itilize pou redireksyon ou gen chape anba li ak yon koupe (\) pou li vle di mwens pase ki se poukisa nan script ki anwo a mwen konpare "$ name1" \ <"$ name2".

Opoze a nan mwens pase se evidamman pi gran pase. Olye pou yo itilize \ .

Pa egzanp

si ["$ name1" \> "$ name2"]

03 nan 08

Débutan Gid pou BASH - Konparezon strings

Leson patikilye BASH - Konparezon strings.

Si ou vle teste si yon varyab gen yon valè ou ka itilize tès sa yo:

si [-n $ name2]

Nan script ki anwo a mwen te teste si wi ou non $ name2 te bay yon valè epi si li pa mesaj "Pa gen okenn Bob, pa te janm gen yon bob parèt".

04 nan 08

Débutan Gid pou BASH - Konparezon strings

Leson patikilye BASH - Konparezon strings.

Sou glise sot pase a nou kouvri si gen yon varyab ki te mete oswa ou pa. Pafwa menm si yon varyab ka mete men li pa ta ka aktyèlman gen yon valè.

Pa egzanp:

non1 = ""

Pou teste si yon varyab gen yon valè oswa pa (sa vle di gen yon longè zewo) itilize -z jan sa a:

si [-z $ name1]

Nan script ki endike anwo a mwen mete $ name1 nan yon kòd longè zewo ak Lè sa a, konpare li lè l sèvi avèk -z. Si $ name1 se zewo nan longè mesaj "gary a te ale pou aswè a" ap parèt.

05 nan 08

Débutan Gid Pou BASH - Konparezon Resansman

Leson patikilye BASH - Konpare nimewo yo.

Se konsa, lwen tout konparezon yo te pou strings. Ki sa ki sou konpare nimewo?

Scripts ki pi wo a montre yon egzanp pou konpare de nimewo:

#! / bin / bash

yon = 4
b = 5

si [$ a = $ b]
lè sa a
eko "4 = 5"
lòt moun
eko "4 pa egal 5"
fi

Yo mete yon varyab yo dwe yon nimewo tou senpleman mete l 'san mak sitasyon. Ou ka Lè sa a, konpare chif yo ak yon siy egal.

Mwen pito sepandan yo sèvi ak operatè sa a yo konpare de nimewo:

Si [$ a-eq $ b]

06 nan 08

Débutan Gid Pou BASH - Konparezon Resansman

Leson patikilye BASH - Konpare nimewo yo.

Si ou vle konpare si yon nimewo gen mwens pase yon lòt nimewo ou ka itilize mwens pase operatè a (<). Menm jan ak strings ou gen yo sove mwens pase operatè a ak yon koupe. (\ <).

Yon fason pi bon nan konpare nimewo se sèvi ak notasyon sa yo olye:

Pa egzanp:

si [$ a -lt $ b]

si [$ a -le $ b]

si [$ yon-$ b]

si [$ yon-nan $ b]

07 nan 08

Débutan Gid Pou BASH - Konparezon Resansman

Leson patikilye BASH - Konpare nimewo yo.

Finalman pou gid sa a, si ou vle teste si wi ou non de nimewo yo diferan ou ka itilize swa mwens pase ak pi gran pase operatè yo ansanm (<>) oswa -e jan sa a:

si [$ yon <> $ b]

si [$ yon -n $ b]

08 nan 08

Débutan Gid Pou BASH - Operatè konparezon - Rezime

Si ou te manke twa premye pati yo nan gid sa a ou ka jwenn yo pa klike sou lyen sa yo:

Nan pwochen pati nan gid la mwen pral kouvri aritmetik.