Çawa Şertên Aştiyê li Şert Scriptê çawa bikar bînin

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:

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:

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:

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:

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î

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î