Sut i Ysgrifennu IF-Datganiadau mewn Sgript Bash

Gorchmynion, Cystrawen, ac Enghreifftiau

Gyda datganiad os yw'n fath o ddatganiad amodol, gallwch chi gyflawni gwahanol gamau yn dibynnu ar amodau penodol. Mae'n rhoi i'r system y gallu i wneud penderfyniadau yn effeithiol.

Enghraifft o'r ffurf symlaf o ddatganiad os fyddai:

cyfrif = 5 os [$ count == 5] yna adleisio "$ count" fi

Yn yr enghraifft hon, defnyddir y "cyfrif" amrywiol i nodi amod a ddefnyddir fel rhan o'r datganiad os. Cyn i'r os-ddatganiad gael ei weithredu, mae'r "cyfrif" yn cael ei neilltuo i'r "5" gwerth. Yna, os yw'r datganiad yn gwirio a yw gwerth "cyfrif" yn "5". Os dyna'r achos, gweithredir y datganiad rhwng y geiriau "yna" a "fi", neu fel arall, caiff unrhyw ddatganiadau yn dilyn y datganiad osgoi eu gweithredu. Mae'r gair "fi" yn "os" wedi'i sillafu yn ôl. Mae'r iaith sgriptio bash yn defnyddio'r confensiwn hwn i nodi diwedd mynegiant cymhleth, datganiad o'r fath neu ddatganiadau achos.

Mae'r datganiad "echo" yn argraffu ei ddadl, yn yr achos hwn, gwerth y "cyfrif" amrywiol, i'r ffenestr derfynell. Mae gosod y cod rhwng allweddeiriau'r os-ddatganiad yn gwella darllenadwyedd ond nid yw'n angenrheidiol.

Os oes gennych sefyllfa lle na ddylid gweithredu darn o god yn unig os nad yw amod yn wir, gallwch ddefnyddio'r gair "arall" mewn datganiad os, fel yn yr enghraifft hon:

cyfrif = 5 os [$ count == 5] yna adleisio "$ count" arall yn adleisio "cyfrif nid 5" fi

Os yw'r cyflwr "$ count == 5" yn wir, mae'r system yn argraffu gwerth y "cyfrif" amrywiol, fel arall mae'n argraffu'r llinyn "count not 5".

Os ydych chi am wahaniaethu rhwng cyflyrau lluosog, gallwch ddefnyddio'r gair "elif", sy'n deillio o "arall os", fel yn yr enghraifft hon:

os [$ count == 5] yna adleisio "cyfrif yn bump" elif [$ count == 6] yna adleisio "cyfrif yn chwech" arall yn adleisio "dim o'r uchod"

Os "cyfrif" yw "5", mae'r system yn argraffu "cyfrif yn bum". Os nad yw "cyfrif" yn "5" ond "6", mae'r "print system" yn chwech ". Os nad yw'n "5" nac "6", mae'r system yn argraffu "dim o'r uchod".

Fel y gallech chi ddyfalu, gallwch chi gael unrhyw nifer o gymalau "elif". Enghraifft gyda chyflyrau lluosog "elif" fyddai:

os [$ count == 5] yna adleisio "cyfrif yn bump" elif [$ count == 6] yna adleisio "cyfrif yn chwech" elif [$ count == 7] yna adleisio "cyfrif yn saith" elif [$ count = = 8] yna adleisio "cyfrif yn wyth" elif [$ count == 9] yna adleisio "cyfrif yn naw" arall adleisio "dim o'r uchod"

Dull achos mwy cryno i ysgrifennu datganiadau o'r fath gyda chyflyrau lluosog yw'r dull achos . Mae'n swyddogaethau tebyg i'r datganiad os oes cymalau lluosog "elif" ond yn fwy cryno. Er enghraifft, gellir ail-ysgrifennu'r darn cod uchod gyda'r datganiad "achos" fel a ganlyn:

achos "$ count" yn 5) adleisio "cyfrif yn bum" ;; 6) adleisio "cyfrif yn chwech" ;; 7) adleisio "cyfrif yn saith" ;; 8) adleisio "cyfrif wyth" ;; 9) adleisio "cyfrif yn naw" ;; *) adleisio "dim o'r uchod" esac

Os defnyddir datganiadau yn aml y tu mewn i ddolenni neu ddibynellau tra yn yr enghraifft hon:

cyfrif = 1 wedi ei wneud = 0 tra [$ cyfrif -le 9] yn gwneud cwsg 1 ((cyfrif ++)) os [$ count == 5] yna parhewch "$ count" wedi'i wneud yn ôl yr echo Gorffen

Gallwch hefyd fod wedi nythu os yw datganiadau. Yn syml yn nythu os yw datganiad o'r ffurflen: os ... yna ... arall ... os ... yna ... fi ... fi. Fodd bynnag, os gall y datganiad nythu gyda chymhlethdod mympwyol.

Gweler hefyd sut i basio dadleuon i sgript bash , sy'n dangos sut i ddefnyddio cyflyrau i brosesu paramedrau a basiwyd o'r llinell orchymyn.

Mae'r cragen bash yn darparu dehongliadau rhaglenni eraill, megis dolenni , traciau-dolenni , ac ymadroddion rhifyddeg .