Fermana testê dikare li ser rêza lênêrîna Linux bikar bîne ku yek elementek li hemberî din binirxîne lê lê ew gelemperî li ser şîfên BASH-ê wekî beşek danûstandinên şertî ya ku têkoşîna logic û bernameyê kontrol dike.
A Basic Example
Hûn dikarin bi hêla vîdyoya termînala vekirî ve bi van rêbazan hewl bikin.
test 1 -qeq 2 & xeberî "yes" || "no" echo
Fermana jorîn dikare bi vî awayî veşartin:
- îmtîhanê - wateya ku hûn li ser derheqê hevpeymanan bikin
- 1 - elementên yekem ê ku hûn têne hev kirin
- -eq (çiqas hûn bi hev re digotin, di vê rewşê de, hûn temaşe dikin ka hejmareke din wekhev e)
- 2 - elementên ku hûn bisekînin yekem re dîsa
- & binivîse, eger ev encam rast e
- "yes" echo - biryare ku vegera vegera rastîn
- || - Daxuyaniya jêrîn bikişîne eger encama çewt e
- "no" echo - emrê birêvebirin ku eger vegera nirxên derewîn a derewer bike
Di armanca de, emir di 1 2 2 de têtehevkirin û ew eşkere dike ku "yes" daxuyaniyek hate darizandin ku ji "yes" veguhestin û heger ew daxuyaniyek nerazî nakin "no" daxuyaniyek dike ku ji "no" nîşan dide.
Hejmarên Bawer
Heke hûn hêmanên ku hûn hejmarên ku hûn dikarin bikarhênerên jêrîn bikar tînin bikar bînin parve bikin:
- -eq - nirxek 1 nirx nirx dike 2
- -ge - nirxek e ku ji hêla hêja 2 zêdetir an jî wekhev e
- -gt - nirx e 1 ji hêja xerîb 2
- -le - nirx e 1 ji kêm an jî wekheviya nirxê 2
- -lt - nirxek e ku ji hêla nirxê 2 kêm e
- -ne- wateya 1 nirx nirx nîne 2
Nimûne:
test 1 -qeq 2 & xeberî "yes" || "no" echo
(li ser ekranê "nabe" nîşan dide, ji ber ku 1 yek wekhev nîne)
test 1 -ge 2 & bişkojk "yes" || "no" echo
(ji bo screenê "no" nîşan dide ji ber ku 1 ne mezintir an jî wekhev e 2)
test 1 -gt 2 & hesabê "yes" || "no" echo
(li ser ekranê "nabe" nîşan dide, ji ber ku 1 jê mezintir 2)
testê 1 -le 2 û bihêle "yes" || "no" echo
(screen "yes" nîşanî dide nîşandan ji ber ku 1 ji kêm an jî wekhevî ye 2)
test 1 -lt 2 & bihêle "yes" || "no" echo
(screen "yes" nîşanî dide nîşandan ji ber ku 1 ji kêm an jî wekhevî ye 2)
test 1 -ne 2 & bihêle "yes" || "no" echo
(li ser ekranê "yes" nîşan dide, ji ber ku 1 yek wekhev nîne)
Text Comparing
Heke hûn bi hêmanên ku hûn wek kevirên ku hûn dikarin operatorên jêrîn bikar bînin bikar bînin hev re digirin:
- = - string 1 match string 2 dike
- ! = - String 1 ye ku ji hêja 2
- -n - ji dirêjahiya 0-ê dirêj e
- -z - dirêjahiya lêdanê 0
Nimûne:
test "string1" = "string2" & echo "yes" || "no" echo
(ji bo ku "string1" wek "string2" wekhev nake "
test "string1"! = "string2" & echo "yes" || "no" echo
(ji bo "screen1" wek "string2" wekhev e "yes" nîşan dide)
test -n "string1" û bihêle "yes" || "no" echo
("li" li ser screenê nîşan dide ku ji "string1" ve girêdayî pîvanek dirêjtir e ku)
test -z "string1" & echo echo "yes" || "no" echo
(ji bo ku li ser "screen1" pîvan ji sifir mezintir e) "no" nîşan dide.
Pelên Comparing
Heke hûn pelên danûstandin in, hûn dikarin bikarhênerên jêrîn bikar bînin bikar bînin:
- -ef - Vê pelan heman wesayît û hejmara hejmar hene (ew heman pelê e)
- -nt - Foleta yekemîn ya pelê ji hêla pelê duyemîn ve ye
- -ot - Vê pelê yekem yê ji pelê duyemîn mezintir e
- -b - Pelê heye heye û taybet eşkere ye
- -c - Fîlm heye û taybetmendiyek taybet e
- -d - Pelê heye heye û peldankek e
- -e - Vê pelê heye
- -f - Vê pelê heye û pelê rasterast e
- -g - Vê pel heye û hejmara hejmareke taybetî heye
- -G - Pelê heye û ji hêla grûpê bikarhêner e
- -h - Vê pel heye heye û girêdana sembolîk e
- -k - Vê pel heye heye û bitikek wê ya xweşik e
- -L - Hemî as-h
- -O - Fîlm heye ku hûn xwediyê xwediyê ne
- -p - Vê pel heye heye û navnîşek navnîşê ye
- -r - Vê pel heye heye û xwendin
- -s - Fîlm heye û mezinahiya sifir ji mezintir heye
- -S - Pelê heye heye û socket heye
- -t - Daxuyaniya pelê li ser demek vekirî ye
- -u - Vê pelê heye û bitikîne set-user-id heye
- -w - Pelê heye û nivîskî ye
- -x - Vê pel heye û rêvebirin e
Nimûne:
test / path / to / file1 -n / path / to / file2 & echo "yes"
(Heke pelê1 ji pelê 2 nûtir e, hingê wê gotina "yes" wê bên nîşandan)
test -e / path / to / file1 & echo "yes"
(Heke pelê 1 heye "peyv" be "yes" tê nîşandan)
test -O / path / to / file1 & echo "yes"
(Heke hûn pelê xwe 1 hingê wê peyv "yes" tê nîşandan ")
Bêjezanî
- Pirsgirêk taybet - Pelê pergala blokek e ku wateya ku daneyên bloyan li bîteyên xwendin. Ev pelên gelemperî wekî pelên mifteyên giran in.
- Taybetmendiya taybet - Daxistin lez dema ku hûn binivîse û hûn bi gelemperî wekî pargala pargala yekser e
Pevçûnên Pirrjimar Pirrjimar
Ji ber ku her tiştî her tiştek tiştek li hemberî din peyda dike, lê çi heger hûn dixwazin du şertên wan bikin.
Ji bo nimûne, heke ku heywanek 4 tûr hene û "moo" diçe, dibe ku ew gerek cûre ye. Ji bo tenê lêgerîna 4 tûr nake ku hûn kûçek heye lê lê dengek kontrol bikin, bi rastî dibe.
Ji bo hemî şertên ku di heman demê de tehlûkeya jêrîn bikar tînin bikar tînin
test 4 -eq 4 -a "moo" = "moo" & "echo" "ew cewrê ye" || echo "ew ne cûre ye"
Li vir parçeyek girîng e -a ku ji bo vekirî ye û
Vê gav û bi gelemperî tê bikaranîn ku ji bo heman ceribandinê didin û ev e:
îmtîhan 4 -eq 4 & test "moo" = "moo" & "echo" "ev xwê ye" || echo "ew ne cûre ye"
Tendek din ku tu dixwazî çêbikin her du gotinan danûstandin û heger jî hilberîna rastîn e ku qeçax. Ji bo nimûne, eger tu dixwazî ku pelê navê "file1.txt" heye an jî pelê "file1.doc" tête navê we heye ku hûn dikarin emrê jêrîn bikar bînin
test -e file1.txt -o -e file1.doc & echo "file1 heye" || "file1 nîne"
Li vir parçeyek girîng e -o ku ji bo an jî tê rawestandin.
Vê gav û bi gelemperî tê bikaranîn ku ji bo heman ceribandinê didin û ev e:
test -e file1.txt || test -e file1.doc & echo "file1 heye" || "file1 nîne"
Hilbijartina Keyword Test
Hûn bi rastî ne hewce ye ku tehlîmek peyva bikar bînin ku bisekine bikin. Tiştên ku hûn hewce ye ku daxuyaniyê di çarçoveya qada çarçoveyê de wiha ye:
[-e file1.txt] & echo "file1 heye" || "file1 nîne"
[Û] bingehîn wekî heman testê ye.
Niha hûn dizanin vê yekê hûn dikarin li ser pêvajoya gelek cûda çêtir bikin:
[4 -eq 4] && ["moo" = "moo"] & echo "ew cûreyek e" || echo "ew ne cûre ye"
[-e file1.txt] || [-e file1.doc] & echo "file1 heye" || "file1 nîne"
Berhevkirinî
Fermandariya testê di hêstirên hêsan e, ji ber ku hûn dikarin nirxa yek yek cûre li dijî duyemîn û programa kontrol bikin. Li ser rêza standard, hûn dikarin bikar bînin ku da ku pelê heye an jî