Ang utos ng pagsubok ay maaaring gamitin sa linya ng command ng Linux upang ihambing ang isang elemento laban sa isa pa, ngunit ito ay karaniwang ginagamit sa mga script ng BASH na shell bilang bahagi ng mga kondisyong pahayag na kontrol sa lohika at daloy ng programa.
Isang Pangunahing Halimbawa
Maaari mong subukan ang mga utos na ito sa pamamagitan lamang ng pagbubukas ng terminal window.
test 1 -eq 2 && echo "yes" || echo "no"
Ang utos sa itaas ay maaaring ibasura gaya ng mga sumusunod: Sa esensya, ang utos ay paghahambing ng 1 hanggang 2 at kung tumutugma sila, ang echo na "yes" na pahayag ay pinaandar na nagpapakita ng "yes" at kung hindi sila tumutugma, ang echo "no" na pahayag ay papatayin na nagpapakita ng "no." Kung iyong hinahambing ang mga elemento na ma-parse bilang mga numero maaari mong gamitin ang sumusunod na mga operator ng paghahambing: Mga halimbawa test 1 -eq 2 && echo "yes" || echo "no"
(nagpapakita ng "hindi" sa screen dahil 1 ay hindi katumbas 2) test 1 -ge 2 && echo "yes" || echo "no"
(nagpapakita ng "hindi" sa screen dahil 1 ay hindi mas malaki o katumbas ng 2) test 1 -gt 2 && echo "yes" || echo "no"
(nagpapakita ng "hindi" sa screen dahil 1 ay hindi mas malaki sa 2) test 1 -le 2 && echo "yes" || echo "no"
(nagpapakita ng "oo" sa screen dahil 1 ay mas mababa sa o katumbas ng 2) test 1 -lt 2 && echo "yes" || echo "no"
(nagpapakita ng "oo" sa screen dahil 1 ay mas mababa sa o katumbas ng 2) test 1 -ne 2 && echo "yes" || echo "no"
(nagpapakita ng "oo" sa screen dahil 1 ay hindi pantay-pantay 2) Kung ikaw ay paghahambing ng mga elemento na ma-parse bilang mga string, maaari mong gamitin ang sumusunod na mga operator ng paghahambing: Mga halimbawa test "string1" = "string2" && echo "yes" || echo "no"
(nagpapakita ng "hindi" sa screen dahil ang "string1" ay hindi katumbas ng "string2") test "string1"! = "string2" && echo "yes" || echo "no"
(nagpapakita ng "oo" sa screen dahil ang "string1" ay hindi katumbas ng "string2") test -n "string1" && echo "yes" || echo "no"
(nagpapakita ng "oo" sa screen dahil ang "string1" ay may haba ng string na mas malaki kaysa sa zero) test -z "string1" && echo "yes" || echo "no"
(nagpapakita ng "hindi" sa screen dahil ang "string1" ay may haba ng string na mas malaki kaysa sa zero) Kung ikaw ay naghahambing ng mga file, maaari mong gamitin ang sumusunod na mga operator ng paghahambing: Mga halimbawa test / path / to / file1 -nt / path / to / file2 && echo "yes"
(Kung ang file1 ay mas bago kaysa file2 pagkatapos ang salitang "oo" ay ipapakita) test -e / path / to / file1 && echo "yes"
(kung ang file1 ay may salitang "oo" ay ipapakita) test -O / path / to / file1 && echo "yes"
(kung mayroon kang file1 pagkatapos ang salitang "oo" ay ipinapakita ") Terminolohiya Sa ngayon, ang lahat ay nagkakumpara ng isang bagay laban sa isa pa, ngunit paano kung nais mong ihambing ang dalawang kondisyon? Halimbawa, kung ang isang hayop ay may 4 na binti at napupunta ang "moo," baka ito ay baka. Ang pagsuri lamang para sa 4 na binti ay hindi ginagarantiyahan na mayroon kang isang baka, ngunit ang pagsuri sa tunog na ito ay tiyak na ginagawa. Upang subukan ang parehong mga kondisyon nang sabay-sabay gamitin ang sumusunod na pahayag: test 4 -eq 4 -a "moo" = "moo" && echo "it's a cow" || echo "ito ay hindi isang baka"
Ang pangunahing bahagi dito ay ang-na kung saan ang ibig sabihin nito at . Mayroong isang mas mahusay at mas karaniwang ginagamit na paraan ng pagsasagawa ng parehong pagsubok at iyon ay ang mga sumusunod: test 4 -eq 4 && test "moo" = "moo" && echo "ito ay isang baka" || echo "ito ay hindi isang baka"
Ang isa pang pagsubok na gusto mong gawin ay ang paghahambing ng dalawang pahayag at kung alinman ang totoo, magpalabas ng string. Halimbawa, kung nais mong suriin na ang isang file na may pangalang "file1.txt" ay umiiral o isang file na tinatawag na "file1.doc" ay umiiral, maaari mong gamitin ang sumusunod na command: test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "file1 ay hindi umiiral"
Ang pangunahing bahagi dito ay ang -o na nakatayo o . Mayroong isang mas mahusay at mas karaniwang ginagamit na paraan ng pagsasagawa ng parehong pagsubok at iyon ay ang mga sumusunod: test -e file1.txt || test -e file1.doc && echo "file1 exists" || echo "file1 ay hindi umiiral" Hindi mo talaga kailangang gamitin ang salitang pagsubok upang maisagawa ang paghahambing. Ang kailangan mo lang gawin ay isama ang pahayag sa mga square bracket tulad ng sumusunod: -e file1.txt && echo "file1 exists" || echo "file1 ay hindi umiiral"
Ang at karaniwang nangangahulugang katulad ng pagsubok. Ngayon alam mo na maaari mong pagbutihin ang paghahambing ng maramihang mga kondisyon tulad ng sumusunod: 4-aq 4 && "moo" = "moo" && echo "ito ay isang baka" || echo "ito ay hindi isang baka"-e file1.txt || -e file1.doc && echo "file1 exists" || echo "file1 ay hindi umiiral" Ang command na pagsubok ay mas kapaki-pakinabang sa mga script dahil maaari mong subukan ang halaga ng isang variable laban sa isa pang at kontrolin ang daloy ng programa. Sa standard command line, maaari mo itong gamitin upang subukan kung umiiral ang isang file o hindi.
Paghahambing ng Mga Numero
Paghahambing ng Teksto
Paghahambing ng mga File
Paghahambing ng Maramihang Kondisyon
Pag-aalis ng Test Keyword
Buod