Sut i Ddefnyddio Amodau Prawf Mewn Sgript Bash

Gellir defnyddio'r gorchymyn prawf ar linell gorchymyn Linux i gymharu un elfen yn erbyn un arall ond fe'i defnyddir yn gyffredin mewn sgriptiau cragen BASH fel rhan o ddatganiadau amodol sy'n rheoli rhesymeg a llif y rhaglen.

Enghraifft Sylfaenol

Gallwch chi roi cynnig ar y gorchmynion hyn trwy agor ffenestr derfynell .

prawf 1 -eq 2 && echo "yes" || adleisio "dim"

Gellir torri'r gorchymyn uchod fel a ganlyn:

Yn y bôn, mae'r gorchymyn yn cymharu 1 i 2 ac maent yn cydweddu â'r datganiad eicon "yes" yn cael ei weithredu sy'n dangos "ie" ac os nad ydyn nhw'n cyd-fynd â'r datganiad "no" yn cael ei weithredu, sy'n dangos "na".

Cymharu Niferoedd

Os ydych yn cymharu elfennau sy'n parse fel rhifau y gallwch chi ddefnyddio'r gweithredwyr cymhariaeth ganlynol:

Enghreifftiau:

prawf 1 -eq 2 && echo "yes" || adleisio "dim"

(yn dangos "na" i'r sgrin oherwydd nid yw 1 yn hafal 2)

prawf 1 -ge 2 ac adleisio "ie" || adleisio "dim"

(yn dangos "na" i'r sgrin oherwydd nad yw 1 yn fwy neu'n gyfartal â 2)

prawf 1 -gt 2 && echo "yes" || adleisio "dim"

(yn dangos "na" i'r sgrin am nad yw 1 yn fwy na 2)

prawf 1 -le 2 && echo "yes" || adleisio "dim"

(yn dangos "ie" i'r sgrin oherwydd bod 1 yn llai na neu'n hafal i 2)

prawf 1 -lt 2 && echo "yes" || adleisio "dim"

(yn dangos "ie" i'r sgrin oherwydd bod 1 yn llai na neu'n hafal i 2)

prawf 1 -ne 2 ac adleisio "ie" || adleisio "dim"

(yn dangos "ie" i'r sgrin oherwydd nid yw 1 yn hafal 2)

Cymharu Testun

Os ydych yn cymharu elfennau sy'n parse fel lllinellau, gallwch ddefnyddio'r gweithredwyr cymhariaeth ganlynol:

Enghreifftiau:

profi "string1" = "string2" && echo "yes" || adleisio "dim"

(yn dangos "na" i'r sgrin oherwydd nid yw "string1" yn hafal "string2")

profi "string1"! = "string2" && echo "yes" || adleisio "dim"

(dangos "yes" i'r sgrin oherwydd nid yw "string1" yn hafal "string2")

prawf -n "string1" && echo "yes" || adleisio "dim"

(dangos "yes" i'r sgrîn oherwydd bod "string1" yn cynnwys hyd llinyn yn fwy na sero)

prawf -z "string1" && echo "yes" || adleisio "dim"

(yn dangos "na" i'r sgrin oherwydd bod "string1" yn cynnwys hyd llinyn yn fwy na sero)

Cymharu Ffeiliau

Os ydych chi'n cymharu ffeiliau, gallwch ddefnyddio'r gweithredwyr cymhariaeth ganlynol:

Enghreifftiau:

prawf / llwybr / i / file1 -n / path / to / file2 && echo "yes"

(Os yw ffeil1 yn newyddach na ffeil2 yna bydd y gair "ie" yn cael ei arddangos)

prawf -e / path / to / file1 && echo "yes"

(os oes ffeil1 yn bodoli, bydd y gair "ie" yn cael ei arddangos)

prawf -O / path / to / file1 && echo "yes"

(os ydych chi'n berchen ar ffeil1 yna dangosir y gair "ie")

Terminoleg

Cymharu Amodau Lluosog

Hyd yma, mae popeth wedi bod yn cymharu un peth yn erbyn un arall ond beth os ydych chi am gymharu dau gyflwr.

Er enghraifft, os oes gan anifail 4 coes ac mae'n mynd "moo" mae'n debyg mai buwch ydyw. Yn syml, nid yw gwirio am 4 coes yn gwarantu bod gennych fuwch ond gwirio'r sain y mae'n ei wneud yn sicr.

I brofi'r ddau gyflwr ar unwaith defnyddiwch y datganiad canlynol:

prawf 4 -eq 4 -a "moo" = "moo" && echo "mae'n fuwch" || adleisio "nid yw'n fuwch"

Y rhan allweddol yma yw'r -a sy'n sefyll amdano a.

Mae yna ffordd well a chyffredin o berfformio'r un prawf ac mae fel a ganlyn:

prawf 4 -eq 4 && prawf "moo" = "moo" && echo "mae'n fuwch" || adleisio "nid yw'n fuwch"

Prawf arall yr hoffech chi ei wneud yw cymharu dau ddatganiad ac os yw naill ai'n wir allbwn llinyn. Er enghraifft, os ydych am wirio bod ffeil o'r enw "file1.txt" yn bodoli neu fod ffeil o'r enw "file1.doc" yn bodoli, gallwch ddefnyddio'r gorchymyn canlynol

test -e file1.txt -o -e file1.doc && echo "file1 exists" || adleisio "nid yw file1 yn bodoli"

Y rhan allweddol yma yw'r -o sy'n sefyll am neu.

Mae yna ffordd well a chyffredin o berfformio'r un prawf ac mae fel a ganlyn:

prawf -e file1.txt || test -e file1.doc && echo "file1 exists" || adleisio "nid yw file1 yn bodoli"

Dileu Testun Allweddair

Nid oes angen i chi ddefnyddio'r prawf geiriau mewn gwirionedd i berfformio'r gymhariaeth. Y cyfan sydd angen i chi ei wneud yw amgáu'r datganiad mewn cromfachau sgwâr fel a ganlyn:

[-e file1.txt] && echo "file1 exists" || adleisio "nid yw file1 yn bodoli"

Mae'r [ac] yn y bôn yn golygu yr un peth â phrawf.

Nawr, rydych chi'n gwybod hyn y gallwch wella ar gymharu nifer o amodau fel a ganlyn:

[4 -eq 4] && ["moo" = "moo"] ac adleisio "mae'n fuwch" || adleisio "nid yw'n fuwch"

[-e file1.txt] || [-e file1.doc] && echo "file1 exists" || adleisio "nid yw file1 yn bodoli"

Crynodeb

Mae'r gorchymyn prawf yn fwy defnyddiol mewn sgriptiau oherwydd gallwch chi brofi gwerth un newidyn yn erbyn llif arall a llif y rhaglen reoli. Ar y llinell orchymyn safonol, gallwch ei ddefnyddio i brofi a oes ffeil yn bodoli neu