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:
- prawf - mae hyn yn golygu eich bod ar fin perfformio cymhariaeth
- 1 - yr elfen gyntaf y byddwch chi'n ei gymharu
- -eq (sut ydych chi'n cymharu, yn yr achos hwn, rydych chi'n profi a yw un rhif yn cyfateb i un arall)
- 2 - yr elfen rydych chi'n cymharu'r elfen gyntaf eto
- && - rhedeg y datganiad canlynol os yw'r canlyniad yn wir
- adleisio "ie" - y gorchymyn i'w redeg os yw'r gymhariaeth yn dychwelyd
- | - rhedeg y datganiad canlynol os yw'r canlyniad yn ffug
- adleisio "na" - y gorchymyn i'w redeg os yw'r cymhariaeth yn ffug
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:
- -eq - ydy gwerth 1 gwerth cyfartal 2
- -ge - yn werth 1 yn fwy neu'n gyfwerth â gwerth 2
- -gt - yn werth 1 yn fwy na gwerth 2
- -le - yn werth 1 yn llai na neu'n hafal i werth 2
- -lt - yn werth 1 yn llai na gwerth 2
- -ne - ydy gwerth 1 ddim yn werth cyfartal 2
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:
- = - a yw llinyn 1 yn cyfateb â llinyn 2
- ! = - yn llinyn 1 yn wahanol i linyn 2
- -n - yw'r hyd llinyn yn fwy na 0
- -z - yw'r hyd llinyn 0
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:
- -ef - A oes gan y ffeiliau yr un ddyfais a rhifau inode (mai'r un ffeil ydyn nhw)
- -nt - A yw'r ffeil gyntaf yn newydd na'r ail ffeil
- -ot - A yw'r ffeil gyntaf yn hŷn na'r ail ffeil
- -b - Mae'r ffeil yn bodoli ac mae'n bloc arbennig
- -c - Mae'r ffeil yn bodoli ac mae'n gymeriad arbennig
- -d - Mae'r ffeil yn bodoli ac mae'n gyfeiriadur
- -e - Mae'r ffeil yn bodoli
- -f - Mae'r ffeil yn bodoli ac mae'n ffeil reolaidd
- -g - Mae'r ffeil yn bodoli ac mae ganddo'r rhif grŵp penodol
- -G - Mae'r ffeil yn bodoli a pherchennog gan grŵp y defnyddiwr
- -h - Mae'r ffeil yn bodoli ac mae'n gyswllt symbolaidd
- -k - Mae'r ffeil yn bodoli ac mae wedi'i osod ar y darn gludiog
- -L - Yr un fath â -h
- -O - Mae'r ffeil yn bodoli chi yw'r perchennog
- -p - Mae'r ffeil yn bodoli ac mae'n bibell a enwir
- -r - Mae'r ffeil yn bodoli ac mae'n ddarllenadwy
- -s - Mae'r ffeil yn bodoli ac mae ganddo faint sy'n fwy na sero
- -S - Mae'r ffeil yn bodoli ac mae'n soced
- -t - Mae'r disgrifydd ffeil yn cael ei agor ar derfynell
- -u - Mae'r ffeil yn bodoli a gosodir y set set-user-id
- -w - Mae'r ffeil yn bodoli ac mae'n ysgrifennu
- -x - Mae'r ffeil yn bodoli ac mae'n weithredadwy
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
- Bloc arbennig - Mae'r ffeil yn ddyfais bloc sy'n golygu bod data yn cael ei ddarllen mewn blociau bytes. Yn gyffredinol, mae'r rhain yn ffeiliau dyfais megis gyriannau caled.
- Cymeriad arbennig - Mae'r ffeil yn cael ei weithredu ar unwaith pan fyddwch yn ysgrifennu ato ac yn gyffredin yw dyfais fel porthladd serial
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