Mwongozo wa Mwanzo kwa BASH - Kulinganisha Mambo

01 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Mambo

BASH Tutorial - Kufananisha Nguvu.

Katika sehemu ya awali ya mafunzo ya BASH tuliangalia maneno ya masharti .

Mwongozo huo ulikuwa mrefu sana lakini kwa kweli tu umeonyesha jinsi ya kudhibiti mtiririko wa mantiki. Mwongozo huu unaonyesha njia tofauti ambazo unaweza kulinganisha vigezo.

Picha hapo juu inaonyesha mfano wa kwanza katika mwongozo wa wiki hii:

#! / bin / bash

jina1 = "gary"
jina2 = "bob"

ikiwa ["$ name1" = "$ name2"]
basi
Echo "majina ya mechi"
mwingine
Echo "majina hayafanani"
fi


Katika somo hapo juu nimeelezea vigezo viwili vinavyoitwa jina1 na jina2 na viliwapa maadili "gary" na "bob". Kama vigezo vyenye kati ya alama za nukuu huitwa vigezo vya kamba ambavyo vinafaa zaidi kama mafunzo yanaendelea.

Script zote zinafanya kulinganisha thamani ya $ 1 na $2 jina la 2 na ikiwa zinalingana na pato kamba "majina yanayofanana" na ikiwa haipati kamba "majina hayakufanani".

Vigezo vya nukuu karibu na vigezo vya jina la $ 1 na $ 2 ni muhimu kwa sababu kama thamani ya yeyote kati yao haijawekwa kisha hati itafanya kazi.

Kwa mfano kama jina la $1 halijawekwa kamwe basi ungekuwa ukilinganisha na "" na "bob". Bila alama za nukuu utasalia na = "bob" ambayo inashindwa wazi.

Unaweza pia kutumia = = notation kufafanua si sawa na ifuatavyo:

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

02 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nguvu

BASH Tutorial - Kufananisha Nguvu.

Katika mfano hapo juu mtihani unalinganisha masharti mawili sawa na huuliza swali gani gary huja kabla bob katika alfabeti?

Wajibu jibu ni hapana.

Script huanzisha chini ya operator (<). Kama mtumiaji chini ya kutumika pia kwa redirection unapaswa kuepuka kwa slash (\) kwa maana yake chini ya ambayo ni kwa nini katika script hapo juu mimi ikilinganishwa "$ name1" \ <"$ name2".

Kinyume cha chini ya ni wazi zaidi kuliko. Badala ya kutumia \ .

Kwa mfano

ikiwa ["$ name1" \ "" $ name2 "]

03 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nguvu

BASH Tutorial - Kufananisha Nguvu.

Ikiwa unataka kupima ikiwa variable ina thamani unaweza kutumia mtihani wafuatayo:

ikiwa [-n $ $2]

Katika somo hapo juu nimejaribu kama jina la $ 2 limepewa thamani na kama haijaswi ujumbe "Hakuna bob, hakukuwa na bob inaonekana".

04 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nguvu

BASH Tutorial - Kufananisha Nguvu.

Kwenye slide iliyopita tulifunua ikiwa variable imewekwa au la. Wakati mwingine ingawa kutofautiana kunaweza kuweka lakini haifai kuwa na thamani.

Kwa mfano:

jina1 = ""

Kuchunguza kama variable ina thamani au la (yaani ina urefu wa sifuri) -a ifuatavyo:

ikiwa [-z $ jina1]

Katika somo hapo juu nimeweka $ jina1 kwenye kamba ya urefu wa sifuri na kisha nikilinganisha kutumia -z. Ikiwa $ name1 ni sifuri kwa muda mrefu ujumbe "gary ametoka jioni" utaonyeshwa.

05 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nambari

BASH Mafunzo - Kulinganisha Nambari.

Hadi sasa kulinganisha yote imekuwa kwa ajili ya masharti. Vipi kuhusu kulinganisha namba?

Somo hapo juu linaonyesha mfano wa kulinganisha namba mbili:

#! / bin / bash

= 4
b = 5

ikiwa [$ a = $ b]
basi
Echo "4 = 5"
mwingine
echo "4 haina sawa 5"
fi

Ili kuweka variable kuwa namba tu kuifanya bila alama za nukuu. Unaweza kisha kulinganisha namba na ishara sawa.

Ninapendelea hata hivyo kutumia operator ifuatayo kulinganisha namba mbili:

Ikiwa [$ $ -aq $ b]

06 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nambari

BASH Mafunzo - Kulinganisha Nambari.

Ikiwa unataka kulinganisha ikiwa idadi ni chini ya nambari nyingine unaweza kutumia chini ya operator (<). Kama ilivyo na masharti unapaswa kuepuka mtumiaji chini ya upele. (\ <).

Njia bora ya kulinganisha namba ni kutumia maelezo yafuatayo badala yake:

Kwa mfano:

ikiwa [$ a -lt $ b]

ikiwa [$ a -le $ b]

ikiwa [$ a -ge $ b]

ikiwa [$ a-gt $ b]

07 ya 08

Mwongozo wa Mwanzo kwa BASH - Kulinganisha Nambari

BASH Mafunzo - Kulinganisha Nambari.

Hatimaye kwa mwongozo huu, ikiwa unataka kupima kama namba mbili ni tofauti unaweza kutumia ama chini na kubwa kuliko waendeshaji pamoja (<>) au -na kama ifuatavyo:

ikiwa [$ a <> $ b]

ikiwa [$ a -ne $ b]

08 ya 08

Mwongozo wa Mwanzo kwa BASH - Wafanyakazi wa kulinganisha - Muhtasari

Ikiwa umekosa sehemu tatu za kwanza za mwongozo huu unaweza kuzipata kwa kubonyeza viungo zifuatazo:

Katika sehemu inayofuata ya mwongozo nitakuwa na kifuniko cha hesabu.