Kijan pou yo itilize kondisyon tès yo nan yon bwat Script

Ou ka itilize kòmandman nan egzamen an sou liy lan lòd Linux pou konpare yon sèl eleman kont yon lòt men li pi souvan itilize nan Scripts koki BASH kòm yon pati nan deklarasyon kondisyonèl ki kontwòl lojik ak koule pwogram lan.

Yon egzanp Debaz

Ou ka eseye kòmandman sa yo tou senpleman pa louvri yon fenèt tèminal .

tès 1 -eq 2 && echo "wi" || eko "non"

Ka lòd ki anwo la a ap kase jan sa a:

Nan sans, lòd la konpare 1 a 2 epi yo matche ak repons lan se "wi" deklarasyon ki montre "repons lan se wi" epi si yo pa matche ak repons lan "pa gen okenn" egzekite ki montre "non".

Konpare nimewo yo

Si ou konpare eleman ki parse kòm nimewo ou ka itilize operatè konparezon sa yo:

Egzanp:

tès 1 -eq 2 && echo "wi" || eko "non"

(montre "non" ekran an paske 1 pa egal 2)

tès 1 -ge 2 && echo "wi" || eko "non"

(montre "non" ekran an paske 1 pa pi gran oswa egal a 2)

tès 1 -t 2 && eko "wi" || eko "non"

(montre "non" ekran an paske 1 pa pi gran pase 2)

tès 1 -le 2 && eko "wi" || eko "non"

(montre "wi" nan ekran an paske 1 se mwens pase oswa egal a 2)

tès 1 -lt 2 && echo "wi" || eko "non"

(montre "wi" nan ekran an paske 1 se mwens pase oswa egal a 2)

tès 1 -e 2 && echo "wi" || eko "non"

(montre "wi" nan ekran an paske 1 pa egal 2)

Konpare tèks

Si ou konpare eleman ki parse kòm strings ou ka itilize operatè konparezon sa yo:

Egzanp:

tès "string1" = "string2" && eko "wi" || eko "non"

(montre "non" nan ekran an paske "string1" pa egal "string2")

tès "string1"! = "string2" && echo "wi" || eko "non"

(montre "wi" nan ekran an paske "string1" pa egal "string2")

tès -n "string1" && echo "wi" || eko "non"

(montre "wi" nan ekran an paske "string1" gen yon longè fisèl ki pi konsekan pase zewo)

tès -z "string1" && echo "wi" || eko "non"

(montre "non" nan ekran an paske "string1" gen yon longè fisèl ki pi konsekan pase zewo)

Konpare dosye yo

Si ou konpare dosye ou ka itilize operatè konparezon sa yo:

Egzanp:

tès / chemen / a / file1 -n / chemen / to / file2 && eko "wi"

(Si file1 se plus pase file2 Lè sa a, mo "wi" a ap parèt)

tès -e / path / to / file1 && eko "wi"

(si file1 egziste mo "wi" a ap parèt)

tès -O / chemen / a / file1 && eko "wi"

(si ou posede file1 Lè sa a, mo "wi" a parèt ")

Tèminoloji

Konpare kondisyon miltip

Se konsa, lwen tout bagay ki te konpare yon sèl bagay kont yon lòt men sa si ou vle konpare de kondisyon yo.

Pou egzanp, si yon bèt gen 4 pye epi ale "moo" li se pwobableman yon bèf. Senpleman tcheke pou 4 pye pa garanti ke ou gen yon bèf men tcheke son an li fè siman fè.

Pou teste de kondisyon yo yon fwa itilize deklarasyon sa a:

tès 4 -eq 4 -a "moo" = "moo" && eko "li se yon bèf" || eko "li se pa yon bèf"

Pati nan kle isit la se yon -a ki kanpe pou ak.

Gen yon fason pi bon ak pi souvan itilize pou fè tès la menm epi ki se jan sa a:

tès 4 -eq 4 && tès "moo" = "moo" && eko "li se yon bèf" || eko "li se pa yon bèf"

Yon lòt tès ou ta ka vle fè se konpare de deklarasyon yo epi si swa se pwodiksyon vre yon fisèl. Pou egzanp, si ou vle tcheke ke yon dosye ki rele "file1.txt" egziste oswa yon dosye ki rele "file1.doc" egziste ou ka itilize lòd sa a

tès -e file1.txt -o -e file1.doc && eko "file1 egziste" || Eko "file1 pa egziste"

Pati nan kle isit la se -o a ki kanpe pou oswa.

Gen yon fason pi bon ak pi souvan itilize pou fè tès la menm epi ki se jan sa a:

tès -e file1.txt | tès -e file1.doc && eko "file1 egziste" || Eko "file1 pa egziste"

Elimine Keyword egzamen an

Ou pa aktyèlman bezwen itilize tès la mo fè konparezon an. Tout sa ou dwe fè se fèmen deklarasyon an nan parantèz kare yo jan sa a:

[-e file1.txt] && eko "file1 egziste" || Eko "file1 pa egziste"

Nan [ak] fondamantalman vle di menm bagay la tou kòm tès la.

Koulye a, ou konnen sa ou ka amelyore sou konpare kondisyon miltip jan sa a:

[4 -eq 4] && ["moo" = "moo"] && eko "li se yon bèf" || eko "li se pa yon bèf"

[-e file1.txt] | [-e file1.doc] && echo "file1 egziste" || Eko "file1 pa egziste"

Rezime

Tès kòmandman an se pi plis itil nan Scripts paske ou ka teste valè yon sèl varyab kont yon lòt ak kontwòl pwogram koule. Sou liy lan lòd estanda, ou ka itilize li nan tès si yon dosye egziste oswa