Kijan pou ekri IF-Deklarasyon yo nan yon bach-Script

Kòmand, sentaks, ak egzanp

Avèk yon si-deklarasyon, ki se yon kalite deklarasyon kondisyonèl, ou ka fè aksyon diferan depann sou kondisyon espesifye. Li efektivman bay sistèm nan kapasite pou pran desizyon.

Yon egzanp fòm ki pi senp nan yon si-deklarasyon ta dwe:

konte = 5 si [$ count == 5] Lè sa a, eko "$ konte" fi

Nan egzanp sa a, varyab "konte" la itilize pou presize yon kondisyon ki itilize kòm yon pati nan si deklarasyon an. Anvan yo egzekite si-deklarasyon an, varyab "konte" a se yon valè "5". Si-deklarasyon an Lè sa a, tcheke si valè a nan "konte" se "5". Si se ka sa a deklarasyon ki genyen ant mo kle "Lè sa a," ak "fi" yo egzekite, otreman nenpòt deklarasyon swiv si deklarasyon an si yo egzekite. Mo "fi" la se "si" eple bak. Lang scripting bash la itilize konvansyon sa a pou make fen yon ekspresyon konplèks, tankou yon si-deklarasyon oswa ka deklarasyon.

"Eko" deklarasyon an simagri agiman li yo, nan ka sa a, valè a nan "konte" varyab la, nan fenèt la tèminal. Ankadreman nan kòd la ant mo kle yo nan si deklarasyon an si amelyore lizibilite, men se pa nesesè.

Si ou gen yon sitiyasyon kote yo ta dwe egzekite yon moso kòd sèlman si yon kondisyon pa vre, ou ka itilize mo kle "lòt bagay" nan yon deklarasyon si ou deklare, tankou nan egzanp sa a:

konte = 5 si [$ konte == 5] Lè sa a, eko "$ konte" lòt bagay eko "konte se pa 5" fi

Si kondisyon "$ count == 5" se verite, sistèm nan simagri valè a nan "konte" varyab la, otreman li simagri fisèl la "konte se pa 5".

Si ou vle diferansye ant plizyè kondisyon, ou ka itilize mo kle "elif la", ki se sòti nan "lòt moun si", tankou nan egzanp sa a:

si [$ konte == 5] Lè sa a, eko "konte se senk" elif [$ count == 6] Lè sa a, eko "konte se sis" lòt bagay eko "Pa gen yonn nan pi wo a"

Si "konte" se "5", sistèm nan simagri soti "konte se senk". Si "konte" se pa "5", men "6", sistèm anprent "konte se sis". Si li pa ni "5" ni "6", sistèm lan anprent "Pa gen yonn nan pi wo a".

Kòm ou ka dvine, ou ka gen nenpòt nimewo nan "elif" Paragraf yo. Yon egzanp ki gen plizyè kondisyon "elif" ta dwe:

si [$ count == 5] Lè sa a, eko "konte se senk" elif [$ count == 6] Lè sa a, eko "konte se sis" elif [$ count == 7] Lè sa a, eko "konte se sèt" elif [$ count = = 8] Lè sa a, eko "konte se uit" elif [$ count == 9] Lè sa a, eko "konte se nèf" lòt bagay eko "Pa gen yonn nan pi wo a"

Yon fason ki pi konpak pou ekri deklarasyon sa yo ak kondisyon miltip se metòd ka a. Li fonksyon menm jan ak si-deklarasyon an ak plizyè "elif" Paragraf men se pi plis kout. Pou egzanp, moso ki pi wo a nan kòd ka re-ekri ak deklarasyon "ka" la jan sa a:

ka "konte" nan 5) eko "konte se senk" ;; 6) Eko "konte se sis" ;; 7) Eko "konte se sèt" ;; 8) eko "konte a uit" ;; 9) eko "konte se nèf" ;; *) Eko "Pa gen yonn nan pi wo a" esak la

Si-deklarasyon yo souvan itilize anndan pou-pasan oswa pandan y ap-pasan tankou nan egzanp sa a:

konte = 1 fè = 0 pandan ke [$ konte -le 9] fè dòmi 1 ((konte ++)) si [$ count == 5] Lè sa a, kontinye fi eko "$ konte" fè eko fini

Ou kapab tou gen enbrike si deklarasyon. Senpleman enbrike si deklarasyon se nan fòm lan: si ... Lè sa a, ... lòt bagay ... si ... Lè sa a, ... fi ... fi. Sepandan, si-deklarasyon kapab enbrike ak konpleksite abitrè.

Gade tou ki jan yo pase agiman nan yon script bach , ki montre kouman yo sèvi ak conditionals nan pwosesis paramèt te pase nan liy lan lòd.

Bato a bash bay lòt konstwi pwogram, tankou pou-pasan , pandan y ap-pasan , ak ekspresyon aritmetik .