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:
- mtihani - hii inamaanisha wewe ni karibu kufanya kulinganisha
- 1 - kipengele cha kwanza unachokifananisha
- -eq (ni jinsi gani unalinganisha, katika kesi hii, unajaribu kama idadi moja inalingana na mwingine)
- 2 - kipengele unalinganisha kipengele cha kwanza tena
- && - tumia taarifa ifuatayo ikiwa matokeo ni ya kweli
- Echo "ndiyo" - amri ya kukimbia ikiwa kulinganisha inarudi kweli
- || - fuata taarifa ifuatayo ikiwa matokeo ni ya uongo
- Echo "hapana" - amri ya kukimbia ikiwa kulinganisha inarudi uongo
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:
- -eq - haina thamani 1 sawa thamani 2
- -ge - ni thamani 1 kubwa au sawa na thamani 2
- -gt - ni thamani 1 kubwa kuliko thamani ya 2
- -le - ni thamani 1 chini ya au sawa na thamani 2
- -na - ni thamani 1 chini ya thamani ya 2
- -ne - haina thamani 1 si thamani sawa 2
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:
- = - ina kamba 1 kamba ya mechi 2
- ! = - ni kamba 1 tofauti na kamba 2
- -n - ni urefu wa kamba kubwa kuliko 0
- -z - ni urefu wa kamba 0
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:
- -ef - Je, faili hizo zina kifaa sawa na nambari za inode (je, ni faili moja)
- -nt - Je! faili ya kwanza mpya kuliko faili ya pili
- -o - Je faili ya kwanza ni ya zamani kuliko faili ya pili
- -b - Faili ipo na inazuia maalum
- -c - Faili ipo na ni tabia maalum
- -d - Faili ipo na ni saraka
- -e - Faili ipo
- -f - Faili ipo na ni faili ya kawaida
- -g - Faili ipo na ina idadi ya kikundi maalum
- -G - Faili ipo na mmiliki kwa kikundi cha mtumiaji
- -h - Faili ipo na ni kiungo cha mfano
- -k - Faili ipo na ina kuweka nata yake
- -L - sawa na -h
- -O - Faili ipo wewe ni mmiliki
- -p - Faili ipo na ni bomba lililoitwa
- -r - Faili ipo na inaonekana
- -s - Faili ipo na ina ukubwa mkubwa kuliko sifuri
- -S - Faili ipo na ni tundu
- -t - Descriptor ya faili inafunguliwa kwenye terminal
- -u - Faili ipo na bit-user-id bit imewekwa
- -w - Faili ipo na imeandikwa
- -x - Faili ipo na inafanywa
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
- Piga maalum - Faili ni kifaa kizuizi kinamaanisha kwamba data inasomewa katika vitalu vya byte. Hizi ni ujumla faili za kifaa kama vile anatoa ngumu.
- Tabia maalum - Faili inachukuliwa mara moja unapoandika na mara nyingi ni kifaa kama bandari ya siri
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