Jinsi ya kutumia Masharti ya Mtihani Katika Hati ya Bash

Amri ya mtihani inaweza kutumika kwenye mstari wa amri ya Linux ili kulinganisha kipengele kimoja dhidi ya mwingine lakini kinatumiwa mara kwa mara katika maandiko ya shell ya BASH kama sehemu ya maneno ya masharti ambayo hudhibiti mantiki na mtiririko wa programu.

Mfano Msingi

Unaweza kujaribu amri hizi tu kwa kufungua dirisha la terminal .

jaribu 1 -aq 2 && echo "ndiyo" || Echo "hapana"

Amri ya juu inaweza kuvunjwa kama ifuatavyo:

Kwa kweli, amri inalinganisha 1 hadi 2 na inalingana na neno la "ndiyo" neno lililofanyika ambalo linaonyeshwa "ndiyo" na ikiwa hailingani neno la "hapana" lililofanyika ambalo linaonyesha "hapana".

Kulinganisha Hesabu

Ikiwa unalinganisha vipengele ambavyo vinazingatia kama nambari ambazo unaweza kutumia watumiaji wa kulinganisha zifuatazo:

Mifano:

jaribu 1 -aq 2 && echo "ndiyo" || Echo "hapana"

(inaonyesha "hapana" kwa skrini kwa sababu 1 haifanani na 2)

jaribu 1 -a 2 && echo "ndiyo" || Echo "hapana"

(inaonyesha "hapana" kwa skrini kwa sababu 1 si kubwa au sawa na 2)

jaribu 1 -gt 2 && echo "ndiyo" || Echo "hapana"

(inaonyesha "hapana" kwenye skrini kwa sababu 1 sio zaidi ya 2)

jaribu 1-2 na & echo "ndiyo" || Echo "hapana"

(inaonyesha "ndiyo" kwenye skrini kwa sababu 1 ni chini au ni sawa na 2)

jaribu 1 -lt 2 && echo "ndiyo" || Echo "hapana"

(inaonyesha "ndiyo" kwenye skrini kwa sababu 1 ni chini au ni sawa na 2)

jaribio 1 -na 2 && echo "ndiyo" || Echo "hapana"

(inaonyesha "ndiyo" kwenye skrini kwa sababu 1 haifanani na 2)

Kulinganisha Nakala

Ikiwa unalinganisha vipengele vinavyotumiwa kama masharti unaweza kutumia wafuatiliaji wafuatayo:

Mifano:

jaribu "string1" = "string2" && echo "ndiyo" || Echo "hapana"

(inaonyesha "hapana" kwenye skrini kwa sababu "string1" hailingani "string2")

jaribu "string1"! = "string2" && echo "ndiyo" || Echo "hapana"

(inaonyesha "ndiyo" kwenye skrini kwa sababu "string1" haifanani "string2")

jaribu -n "string1" && echo "ndiyo" || Echo "hapana"

(inaonyesha "ndiyo" kwenye skrini kwa sababu "string1" ina urefu wa kamba kubwa kuliko sifuri)

jaribu -z "string1" && echo "ndiyo" || Echo "hapana"

(inaonyesha "hapana" kwenye skrini kwa sababu "string1" ina urefu wa kamba kubwa kuliko sifuri)

Kulinganisha Files

Ikiwa unalinganisha faili unaweza kutumia watumiaji wa kulinganisha zifuatazo:

Mifano:

mtihani / njia / kwa / file1 -n / njia / kwa / file2 && echo "ndiyo"

(Ikiwa file1 ni mpya zaidi kuliko file2 basi neno "ndiyo" litaonyeshwa)

mtihani -e / njia / kwa / file1 && echo "ndiyo"

(kama file1 ipo neno "ndiyo" litaonyeshwa)

mtihani -O / njia / kwa / file1 && echo "ndiyo"

(ikiwa una faili1 basi neno "ndiyo" linaonyeshwa ")

Terminology

Kulinganisha Masharti Mingi

Kwa sasa kila kitu kilikuwa kinalinganisha jambo moja dhidi ya mwingine lakini ni nini ikiwa unataka kulinganisha hali mbili.

Kwa mfano, ikiwa mnyama ana miguu 4 na anaenda "moo" labda ni ng'ombe. Kuangalia tu kwa miguu 4 hakuhakikishi kuwa una ng'ombe lakini kuangalia sauti ambayo inafanya hakika inafanya.

Kuchunguza masharti yote mara moja kutumia kauli ifuatayo:

mtihani 4 -eq 4 -a "moo" = "moo" && echo "ni ng'ombe" || Echo "sio ng'ombe"

Sehemu muhimu hapa ni-ambayo inasimama na.

Kuna njia bora zaidi na ya kawaida ya kufanya mtihani huo na hii ni kama ifuatavyo:

jaribio 4 -eq 4 && mtihani "moo" = "moo" && echo "ni ng'ombe" || Echo "sio ng'ombe"

Jaribio jingine unaloweza kufanya ni kulinganisha kauli mbili na ikiwa ni kweli pato kamba. Kwa mfano, ikiwa unataka kuangalia kwamba faili iliyoitwa "file1.txt" ipo au faili inayoitwa "file1.doc" ipo unaweza kutumia amri ifuatayo

mtihani -e file1.txt -o-file file.doc && echo "faili1 ipo" || Echo "faili1 haipo"

Sehemu muhimu hapa ni -a ambayo inasimama au.

Kuna njia bora zaidi na ya kawaida ya kufanya mtihani huo na hii ni kama ifuatavyo:

mtihani -e file1.txt || mtihani -e file1.doc && echo "faili1 ipo" || Echo "faili1 haipo"

Kuondoa nenosiri la mtihani

Huna kweli unahitaji kutumia mtihani wa neno ili ufananishe. Wote unapaswa kufanya ni kuzingatia taarifa katika mabano ya mraba kama ifuatavyo:

[-e file1.txt] && echo "faili1 ipo" || Echo "faili1 haipo"

[Na] kimsingi ina maana sawa na mtihani.

Sasa unajua hii unaweza kuboresha kwa kulinganisha hali nyingi kama ifuatavyo:

[4 -eq 4] && ["moo" = "moo"] && echo "ni ng'ombe" || Echo "sio ng'ombe"

[-i faili1.txt] || [-e file1.doc] && echo "faili1 ipo" || Echo "faili1 haipo"

Muhtasari

Amri ya mtihani ni muhimu sana katika maandiko kwa sababu unaweza kupima thamani ya kutofautiana moja dhidi ya mtiririko mwingine na udhibiti wa mpango. Kwenye mstari wa amri ya kiwango, unaweza kutumia ili ujaribu ikiwa faili iko au