Il-kmand tat-test jista 'jintuża fuq il-linja tal-kmand tal-Linux biex titqabbel element wieħed kontra ieħor imma hija użata aktar komunement f'skripts tal-qoxra BASH bħala parti minn dikjarazzjonijiet kondizzjonali li jikkontrollaw il-loġika u l-fluss tal-programm.
Eżempju Bażiku
Tista 'tipprova dawn il-kmandi sempliċiment billi tiftaħ tieqa tat-terminal .
test 1 -eq 2 && echo "yes" || eku "le"
Il-kmand ta 'hawn fuq jista' jinqasam kif ġej:
- test - dan ifisser li inti ser tagħmel paragun
- 1 - l-ewwel element li ser tqabbel
- -eq (kif qed tqabbel, f'dan il-każ, inti qed tittestja jekk numru wieħed huwiex daqs ieħor)
- 2 - l-element li qed tqabbel l-ewwel element mill-ġdid
- && - imexxu d-dikjarazzjoni li ġejja jekk ir-riżultat ikun veru
- Echo "iva" - il-kmand jiddekorri jekk il-paragun jirritorna veru
- || - imexxu d-dikjarazzjoni li ġejja jekk ir-riżultat ikun falz
- Echo "le" - il-kmand jiddekorri jekk il-paragun jirritorna falz
Essenzjalment, il-kmand qed iqabbel 1 sa 2 u jaqblu ma 'l-echo "dikjarazzjoni" iva li tiġi eżegwita li turi "iva" u jekk ma jaqblux ma' l-echo "l-ebda stqarrija tiġi eżegwita li turi" le ".
Numri ta 'Tqabbil
Jekk inti qed tqabbel elementi li parse bħala numri tista 'tuża l-operaturi ta' paragun li ġejjin:
- -eq - ma valur 1 valur ugwali 2
- -ge - huwa l-valur 1 akbar jew ugwali għall-valur 2
- -gt - huwa l-valur 1 akbar mill-valur 2
- -le - huwa l-valur 1 inqas minn jew ugwali għall-valur 2
- -lt - huwa l-valur 1 inqas mill-valur 2
- -ne - valur 1 mhux valur ugwali 2
Eżempji:
test 1 -eq 2 && echo "yes" || eku "le"
(juri "le" ma 'l-iskrin għaliex 1 ma jkunx ugwali 2)
test 1 -ge 2 && echo "yes" || eku "le"
(juri "le" ma 'l-iskrin għaliex 1 mhuwiex akbar jew daqs 2)
test 1 -gt 2 && echo "iva" || eku "le"
(juri "le" ma 'l-iskrin għax 1 mhuwiex akbar minn 2)
test 1 -le 2 && echo "yes" || eku "le"
(juri "iva" għall-iskrin għax 1 huwa inqas minn jew ugwali għal 2)
test 1 -lt 2 && echo "yes" || eku "le"
(juri "iva" għall-iskrin għax 1 huwa inqas minn jew ugwali għal 2)
test 1 -ne 2 && echo "iva" || eku "le"
(juri "iva" għall-iskrin għaliex 1 ma jiggwidix 2)
Tqabbil tat-Test
Jekk inti tqabbel elementi li parse bħala kordi tista 'tuża l-operaturi ta' paragun li ġejjin:
- = - tissikka string 1 match string 2
- ! = - hija s-sekwenza 1 differenti għas-sekwenza 2
- -n - huwa t-tul ta 'sekwenza akbar minn 0
- -z - hija t-tul ta 'sekwenza 0
Eżempji:
test "string1" = "string2" && echo "yes" || eku "le"
(juri "le" għall-iskrin għaliex "string1" ma jkunx daqs "string2")
test "string1"! = "string2" && echo "yes" || eku "le"
(juri "iva" għall-iskrin għaliex "string1" ma jkunx daqs "string2")
test -n "string1" && echo "yes" || eku "le"
(juri "iva" għall-iskrin għaliex "string1" għandu tul ta 'sekwenza akbar minn żero)
test -z "string1" && echo "yes" || eku "le"
(turi "le" għall-iskrin għaliex "string1" għandha tul ta 'sekwenza akbar minn żero)
Tqabbil ta 'Fajls
Jekk qed tqabbel fajls tista 'tuża l-operaturi ta' paragun li ġejjin:
- -ef - Il-fajls għandhom l-istess apparat u numri inode (huma l-istess fajl)
- -nt - L-ewwel fajl huwa aktar ġdid mit-tieni fajl
- -ot - L-ewwel fajl huwa aktar antik mit-tieni fajl
- -b - Il-fajl jeżisti u huwa speċjali tal-blokk
- -c - Il-fajl jeżisti u huwa karattru speċjali
- -d - Il-fajl jeżisti u huwa direttorju
- -e - Il-fajl jeżisti
- -f - Il-fajl jeżisti u huwa fajl regolari
- -g - Il-fajl jeżisti u għandu n-numru tal-grupp speċifikat
- -G - Il-fajl jeżisti u s-sid mill-grupp ta 'l-utent
- -h - Il-fajl jeżisti u huwa rabta simbolika
- -k - Il-fajl jeżisti u għandu s-sett bit twaħħal tiegħu
- -L - L-istess bħal -h
- -O - Il-fajl jeżisti inti s-sid
- -p - Il-fajl jeżisti u huwa pajp msemmi
- -r - Il-fajl jeżisti u jista 'jinqara
- -s - Il-fajl jeżisti u għandu daqs akbar minn żero
- -S - Il-fajl jeżisti u huwa sokit
- -t - Id-deskrittur tal-fajl jinfetaħ fuq terminal
- -u - Il-fajl jeżisti u l-id-user set-id huwa stabbilit
- -w - Il-fajl jeżisti u jista 'jiġi miktub
- -x - Il-fajl jeżisti u huwa eżegwibbli
Eżempji:
test / path / to / file1 -n / path / to / file2 && echo "iva"
(Jekk il-fajl 1 huwa aktar minn fajl2, il-kelma "iva" se tintwera)
test -e / path / to / file1 && echo "iva"
(jekk file1 teżisti l-kelma "iva" se tintwera)
test -O / path / to / file1 && echo "iva"
(jekk inti stess fajl1 allura l-kelma "iva" hija murija ")
Terminoloġija
- Blokka speċjali - Il-fajl huwa strument blokk li jfisser li d-data tinqara fi blokki ta 'bytes. Dawn ġeneralment huma fajls ta 'apparat bħal hard drives.
- Karattru speċjali - Il-fajl jaġixxi immedjatament meta tikteb u hija komunement mezz bħal port serjali
Tqabbil ta 'Kondizzjonijiet Multipli
S'issa dak kollu kien li wieħed iqabbel ħaġa waħda ma 'oħra iżda x'jiġri jekk trid tqabbel żewġ kundizzjonijiet.
Pereżempju, jekk annimal ikollu 4 saqajn u jmur "moo" huwa probabbilment baqra. Sempliċiment li jivverifika għal 4 saqajn ma jiggarantixxix li għandek baqra imma li tikkontrolla l-ħoss li tagħmel żgur.
Biex tittestja ż-żewġ kundizzjonijiet f'daqqa, uża d-dikjarazzjoni li ġejja:
test 4 -eq 4 -a "moo" = "moo" && echo "huwa baqra" || eku "mhux baqra"
Il-parti ewlenija hawn hija -a li tirrappreżenta u.
Hemm mod aħjar u aktar komunement użat biex isir l-istess test u dan huwa kif ġej:
test 4 -eq 4 && test "moo" = "moo" && echo "huwa baqra" || eku "mhux baqra"
Test ieħor li tista 'tixtieq tagħmel hu li jqabbel żewġ dikjarazzjonijiet u jekk jew ikun veru joħroġ sensiela. Per eżempju, jekk trid tiċċekkja li hemm fajl imsejjaħ "file1.txt" jew inkella fajl imsejjaħ "file1.doc" jeżisti tista 'tuża l-kmand li ġej
test -e file1.txt -o -e file1.doc && echo "file1 jeżisti" || Echo "file1 ma teżistix"
Il-parti ewlenija hawn hija -o li tirrappreżenta jew.
Hemm mod aħjar u aktar komunement użat biex isir l-istess test u dan huwa kif ġej:
test -e file1.txt || test -e file1.doc && echo "file1 teżisti" || Echo "file1 ma teżistix"
L-eliminazzjoni tat-Test Keyword
M'għandekx bżonn tuża t-test tal-kelma biex tagħmel il-paragun. Kull ma trid tagħmel hu li tinkludi d-dikjarazzjoni f'parentesi kwadri kif ġej:
[-e file1.txt] && echo "file1 teżisti" || Echo "file1 ma teżistix"
Il- [u] bażikament tfisser l-istess bħat-test.
Issa taf dan tista 'ttejjeb meta tqabbel kundizzjonijiet multipli kif ġej:
[4-eq 4] && ["moo" = "moo"] && echo "hija baqra" || eku "mhux baqra"
[-e file1.txt] || [-e file1.doc] && echo "fajl1 jeżisti" || Echo "file1 ma teżistix"
Sinteżi
Il-kmand tat-test huwa iktar utli f'testijiet ta 'skripts għaliex tista' tittestja l-valur ta 'varjabbli waħda kontra oħra u l-fluss tal-programm ta' kontroll. Fuq il-linja tal-kmand standard, tista 'tużaha biex tittestja jekk jeżistix jew le fajl