Testna naredba se može koristiti na Linux komandnoj liniji za usporedbu jednog elementa protiv drugog, ali se uobičajeno koristi u skriptama BASH ljuske kao dio uvjetnih izjava koje kontroliraju logiku i tok programa.
Osnovni primjer
Te naredbe možete isprobati jednostavnim otvaranjem prozora terminala.
test 1-eq 2 && echo "yes" || odjek "ne"
Gornja naredba može se podijeliti na sljedeći način: U biti, naredba uspoređuje 1 do 2, a ako se podudaraju, izvršava se echo "yes" izjava koja prikazuje "da" i ako se ne podudaraju, izvodi echo "no" koji prikazuje "ne". Ako uspoređujete elemente koji se raščlanjuju kao brojevi, možete upotrijebiti sljedeće operatore usporedbe: Primjeri test 1-eq 2 && echo "yes" || odjek "ne"
(prikazuje "ne" na zaslonu jer 1 nije jednak 2) test 1 -ge 2 & & echo "yes" || odjek "ne"
(prikazuje "ne" na zaslonu jer 1 nije veća ili jednaka 2) test 1 -gt 2 && echo "yes" || odjek "ne"
(prikazuje "ne" na zaslonu jer 1 nije veći od 2) test 1 -le 2 && echo "yes" || odjek "ne"
(prikazuje "da" na zaslon jer je 1 manji ili jednak 2) test 1 -lt 2 && echo "yes" || odjek "ne"
(prikazuje "da" na zaslon jer je 1 manji ili jednak 2) test 1 -ne 2 && echo "da" || odjek "ne"
(prikazuje "da" na zaslonu jer 1 nije jednak 2) Ako uspoređujete elemente koji se parciraju kao nizovi, možete upotrijebiti sljedeće operatore za usporedbu: Primjeri test "string1" = "string2" && echo "yes" || odjek "ne"
(prikazuje "ne" na zaslonu jer "string1" nije jednak "string2") test "string1"! = "string2" && echo "yes" || odjek "ne"
(prikazuje "da" na zaslonu jer "string1" nije jednak "string2") test -n "string1" && echo "yes" || odjek "ne"
(prikazuje "da" na zaslonu jer "string1" ima duljinu niza veću od nule) test -z "string1" && echo "da" || odjek "ne"
(prikazuje "ne" na zaslonu jer "string1" ima duljinu niza veću od nule) Ako uspoređujete datoteke, možete koristiti sljedeće operatore za usporedbu: Primjeri test / put / to / file1 -nt / put / to / file2 && echo "da"
(Ako je file1 noviji od datoteke2, tada će se prikazati riječ "da" test -e / put / do / file1 && echo "da"
(ako postoji datoteka1, pojavit će se riječ "da") test -O / put / do / file1 && echo "da"
(ako posjedujete datoteku1 onda se prikazuje riječ "da") Terminologija Do sada, sve je uspoređivalo jednu stvar s drugom, ali što ako želite usporediti dva uvjeta? Na primjer, ako životinja ima 4 noge i ide "moo", to je vjerojatno krava. Jednostavno provjeravanje za 4 noge ne jamči da imate kravu, ali provjerite zvuk koji čini sigurno. Za testiranje oba uvjeta odjednom upotrijebite sljedeću izjavu: test 4-eq 4 -a "moo" = "moo" && echo "to je krava" || odjek "to nije krava"
Ovdje je ključni dio -a koji označava i . Postoji bolji i najčešće korišten način izvođenja istog testa i to je kako slijedi: test 4-eq 4 && test "moo" = "moo" && echo "to je krava" || odjek "to nije krava"
Još jedan test koji želite napraviti jest uspoređivanje dviju izjava i ako je istina, izlazni niz. Na primjer, ako želite provjeriti postoji li datoteka pod nazivom "file1.txt" ili datoteka "file1.doc", možete upotrijebiti sljedeću naredbu: test -e file1.txt -o -e file1.doc & & echo "file1 postoji" || echo "datoteka1 ne postoji"
Ključni dio ovdje jest -o što znači ili . Postoji bolji i najčešće korišten način izvođenja istog testa i to je kako slijedi: test -e file1.txt || test -e file1.doc & & echo "file1 postoji" || echo "datoteka1 ne postoji" Zapravo ne morate koristiti riječ test za izvršavanje usporedbe. Sve što morate učiniti je priložiti izjavu u kvadratnim zagradama kako slijedi: -e file1.txt && echo "file1 postoji" || echo "datoteka1 ne postoji"
I zapravo znači isto kao i test. Sada znate ovo što možete poboljšati ako uspoređujete više uvjeta kako slijedi: 4-eq 4 && "moo" = "moo" && echo "to je krava" || odjek "to nije krava"-e file1.txt || -e file1.doc && echo "file1 postoji" || echo "datoteka1 ne postoji" Testna naredba je korisnija u skriptama jer možete testirati vrijednost jedne varijable protiv drugog i protoka upravljačkog programa. Na standardnoj naredbenoj liniji možete ga koristiti za testiranje postoji li datoteka.
Usporedba brojeva
Uspoređujući tekst
Usporedba datoteka
Usporedba višestrukih uvjeta
Uklanjanje testne ključne riječi
Sažetak