Ang test command mahimong magamit sa command line sa Linux aron itandi ang usa ka elemento batok sa lain apan mas kasagarang gigamit sa BASH shell scripts isip kabahin sa conditional statements nga nagkontrolar sa logic ug daloy sa programa.
Usa ka Sukaranan nga Paagi
Mahimo nimong sulayan kini nga mga sugo pinaagi lamang sa pag-abli sa terminal nga bintana .
test 1-gaq 2 && echo "oo" || echo "no"
Ang sugo sa ibabaw mahimong mabuak sama sa mosunod:
- Pagsulay - kini nagpasabot nga imong buhaton ang pagtandi
- 1 - ang unang elemento nga imong itandi
- -EQ (giunsa nimo pagtandi, sa kini nga kaso, gisulayan nimo ang usa ka numero nga parehas sa usa ka numero)
- 2 - ang elemento nga imong gitandi pag-usab ang unang elemento
- && - pagdagan ang mosunod nga pamahayag kon ang resulta tinuod
- echo "oo" - ang sugo sa pagdagan kon ang pagtandi balik
- || - Pagdalagan ang mosunod nga pamahayag kon ang resulta sayop
- echo "no" - ang sugo nga modagan kon ang pagtandi mubalik
Sa esensya, ang komando nagtandi sa 1 ngadto sa 2 ug kini ang katugbang sa echo nga "oo" nga pamahayag nga gipatuman nga nagpakita sa "oo" ug kung dili kini matandi ang echo "no" nga pahayag nga gipatuman nga nagpakita "dili".
Pagtandi sa Numeros
Kon imong gitandi ang mga elemento nga mag-parse isip mga numero mahimo nimo gamiton ang mosunod nga mga operators nga pagtandi:
- -EQ - ang bili 1 parehas nga bili 2
- -ge - mao ang bili 1 mas dako o katumbas sa bili 2
- -g - mao ang bili 1 nga labaw pa kaysa bili 2
- -le - mao ang kantidad nga 1 nga mas ubos kaysa o sama sa bili 2
- -lt - mao ang bili 1 mas ubos kaysa bili 2
- -ne - ang bili 1 dili parehas nga bili 2
Mga pananglitan:
test 1-gaq 2 && echo "oo" || echo "no"
(nagpakita "dili" sa screen tungod kay 1 dili pareho 2)
test 1 -ge 2 && echo "oo" || echo "no"
(nagpakita "dili" sa screen tungod kay ang 1 dili mas dako o katumbas sa 2)
test 1 -gt 2 && echo "oo" || echo "no"
(nagpakita sa "dili" sa screen tungod kay ang 1 dili mas labaw sa 2)
test 1 -le 2 && echo "oo" || echo "no"
(nagpakita sa "oo" sa screen tungod kay 1 dili kaayo o sama sa 2)
test 1 -lt 2 && echo "oo" || echo "no"
(nagpakita sa "oo" sa screen tungod kay 1 dili kaayo o sama sa 2)
test 1 -ne 2 && echo "oo" || echo "no"
(nagpakita sa "oo" sa screen tungod kay 1 dili managsama 2)
Pagpaanggid sa Teksto
Kon imong gitandi ang mga elemento nga magamit ingon nga mga linya mahimo nimo gamiton ang mosunod nga mga opereytor sa pagtandi:
- = - ang string 1 match string 2
- ! = - mao ang hugpong 1 nga lahi sa string 2
- -n - mao ang gitas-on sa pisi nga mas dako kaysa 0
- -z - mao ang hilo nga gitas-on 0
Mga pananglitan:
test "string1" = "string2" && echo "oo" || echo "no"
(nagpakita "dili" sa screen tungod kay ang "string1" dili parehas nga "string2")
test "string1"! = "string2" && echo "oo" || echo "no"
(nagpakita sa "oo" sa screen tungod kay ang "string1" dili parehas nga "string2")
test -n "string1" && echo "oo" || echo "no"
(nagpakita sa "oo" sa screen tungod kay ang "string1" adunay hilo nga gitas-on nga labaw pa kay sa zero)
test -z "string1" && echo "oo" || echo "no"
(nagpakita sa "dili" sa screen tungod kay ang "string1" adunay hilo nga gitas-on nga labaw pa kaysa zero)
Pagtandi sa mga File
Kon imong gitandi ang mga file mahimo nimo gamiton ang mosunod nga mga opereytor sa pagtandi:
- -ef - Ang mga file ba adunay parehas nga device ug mga numero sa inode (pareho ba sila nga file)
- -nt - Ang unang file nga mas bag-o kay sa ikaduha nga file
- -ot - Ang una ba nga file mas tigulang kay sa ikaduha nga file
- -b - Ang file anaa ug gibabagan nga espesyal
- -c - Ang file anaa ug kini usa ka espesyal nga karakter
- -d - Ang file anaa ug direktoryo
- -e - Anaa ang file
- -f - Ang file anaa ug usa ka regular nga file
- -g - Ang file anaa ug adunay gipili nga numero sa grupo
- -G - Ang file anaa ug tag-iya sa grupo sa tiggamit
- -h - Ang file anaa ug simbolo nga sumpay
- -k - Ang file anaa ug adunay gibutang nga tipik niini
- -L - Sama sa -h
- -O - Ang file anaa kanimo ikaw ang tag-iya
- -p - Ang file anaa ug usa ka ginganlan nga tubo
- -r - Ang file anaa ug mahimong mabasa
- -s - Ang file anaa ug adunay usa ka gidak-on nga mas labaw kay sa zero
- -S - Ang file anaa ug usa ka socket
- -t - Ang file descriptor gibuksan sa usa ka terminal
- -u - Ang file anaa ug ang set-user-id bit nahimutang
- -w - Ang file anaa ug mahimo isulat
- -x - Ang file anaa ug kini mahimo'g eksakto
Mga pananglitan:
test / path / to / file1 -n / path / to / file2 && echo "oo"
(Kung ang file1 mas bag-o kay sa file2 nan ang pulong nga "oo" ipasundayag)
test -e / path / to / file1 && echo "oo"
(kung ang file1 naglangkob sa pulong nga "oo" ang gipakita)
test -O / path / to / file1 && echo "oo"
(kung ikaw adunay file1 nan ang pulong nga "oo" gipakita ")
Terminolohiya
- I-block ang espesyal - Ang file usa ka block device nga nagpasabut nga ang datos mabasa sa mga block sa bytes. Kini kasagaran nga mga file sama sa hard drive.
- Espesyal nga karakter - Ang file gilayon nga gigamit sa dihang nagsulat ka niini ug sa kasagaran usa ka lalang sama sa serial port
Pagpaanggid sa Daghang Kondisyon
Hangtud niining tanan ang pagtandi sa usa ka butang batok sa lain apan unsa kon gusto nimo itandi ang duha ka kondisyon.
Pananglitan, kon ang usa ka hayop adunay 4 ka mga tiil ug moadto "moo" kini tingali usa ka baka. Ang pagsusi lang sa 4 ka mga bitiis dili garantiya nga ikaw adunay usa ka baka apan pagsusi sa tingog nga kini makahimo gayud.
Aron sulayan ang duha ka mga kondisyon sa makausa gamiton ang mosunod nga pahayag:
test 4 -eq 4 -a "moo" = "moo" && echo "usa kini ka baka" || echo "dili kini usa ka baka"
Ang importante nga bahin dinhi mao ang-usa nga mao ang alang sa ug.
Adunay usa ka mas maayo ug mas komon nga gigamit nga paagi sa paghimo sa sama nga pagsulay ug nga mao ang mosunod:
test 4-met 4 && test "moo" = "moo" && echo "usa kini ka baka" || echo "dili kini usa ka baka"
Ang lain nga pagsulay nga gusto nimo nga himoon mao ang pagtandi sa duha ka mga pahayag ug kung ang usa tinuod mao ang pag-output sa hilo. Pananglitan, kung gusto nimo masusi nga ang usa ka file nga ginganlan nga "file1.txt" o kung adunay usa ka file nga gitawag "file1.doc" mahimo nimong gamiton ang mosunod nga
test -e file1.txt -o -e file1.doc && echo "file1 anaa" || echo "file1 wala maglungtad"
Ang yawe nga bahin dinhi mao ang -o nga nagatindog o.
Adunay usa ka mas maayo ug mas komon nga gigamit nga paagi sa paghimo sa sama nga pagsulay ug nga mao ang mosunod:
test -e file1.txt || test -e file1.doc && echo "file1 anaa" || echo "file1 wala maglungtad"
Pagwagtang sa Test Keyword
Dili nimo kinahanglan nga gamiton ang pulong nga pagsulay aron mahimo ang pagtandi. Ang kinahanglan nimo nga buhaton mao ang paglakip sa pamahayag sa mga square brackets ingon sa mosunod:
[-e file1.txt] && echo "file1 anaa" || echo "file1 wala maglungtad"
Ang [ug] nagpasabut nga sama sa pagsulay.
Karon nahibal-an mo kini nga imong mapalambo ang pagtandi sa daghang kondisyon sama sa mosunod:
[4-adlaw 4] && ["moo" = "moo"] && echo "usa kini ka baka" || echo "dili kini usa ka baka"
[-e file1.txt] || [-e file1.doc] && echo "file1 anaa" || echo "file1 wala maglungtad"
Sumaryo
Ang test command mas mapuslanon sa mga script tungod kay imong sulayan ang bili sa usa ka variable batok sa lain ug pagkontrol sa agianan sa programa. Sa standard command line, mahimo nimo kini gamiton aron sulayan kung adunay file o