Kif tuża l-Kundizzjonijiet tat-Test fi Skritt Bash

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:

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:

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:

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:

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

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