Kaip parašyti IF pareiškimus Bash-script

Komandos, sintaksė ir pavyzdžiai

Naudojant if-statement, kuris yra sąlyginio teiginio tipas, galite atlikti skirtingus veiksmus, priklausomai nuo nurodytų sąlygų. Tai veiksmingai suteikia sistemai galimybę priimti sprendimus.

Pats paprasčiausias if-statement formos pavyzdys:

count = 5 jei [$ count == 5], tada echo "$ count" fi

Šiame pavyzdyje kintamasis "count" naudojamas norint nurodyti sąlygą, kuri naudojama kaip if-statement dalis. Prieš vykdant if-statement, kintamasis "count" priskiriamas reikšmę "5". Tada "if" teiginys patikrina, ar "count" reikšmė yra "5". Tokiu atveju vykdomas raktinių žodžių "tada" ir "fi" įrašas, priešingu atveju atliekami bet kokie teiginiai, susiję su if-statement. Raktinis žodis "fi" yra "if" parašytas atgal. "Bash" scenarijų kalba naudoja šią konvenciją, kad būtų pažymėta sudėtingos išraiškos, tokios if-statement arba case-statement, pabaigos.

"Echo" teiginys spausdina savo argumentą, šiuo atveju, kintamojo "count" vertę į terminalo langą. Kodo paslėpimas tarp if-statement raktų pagerina skaitymą, tačiau jis nėra būtinas.

Jei turite situaciją, kai kodo dalis turėtų būti įvykdyta tik tuo atveju, jei sąlyga nėra teisinga, galite naudoti raktinį žodį "dar" if-statement, kaip šiame pavyzdyje:

count = 5 jei [$ count == 5] tada echo "$ count" else echo "count is not 5" fi

Jei sąlyga "$ count == 5" yra teisinga, sistema spausdina kintamojo reikšmę "count", kitaip jis spausdina eilutę "count is not 5".

Jei norite atskirti kelias sąlygas, galite naudoti raktinį žodį "elif", kuris yra kilęs iš "else if", kaip šiame pavyzdyje:

jei [$ count == 5], tada echo "count is five" elif [$ count == 6], tada echo "count six" else echo "none of the above" fi

Jei "count" yra "5", sistema atspausdina "count is five". Jei "count" nėra "5", bet "6", sistema spausdina "count is six". Jei tai nėra nei "5", nei "6", sistema spausdina "nė vienas iš aukščiau".

Kaip jūs galėjote atspėti, galite turėti bet kokį "elif" išlygų skaičių. Pavyzdys su keliais "elif" sąlygomis būtų toks:

jei [$ count == 5] tada echo "count is five" elif [$ count == 6], tada echo "count is six" elif [$ count == 7], tada echo "count seven" elif [$ count = = 8], tada echo "count is eight" elif [$ count == 9], tada echo "count nine" else echo "none of the above" fi

Kompaktiškas būdas rašyti tokius teiginius keliomis sąlygomis yra atvejo metodas. Jis veikia panašiai kaip if-statement su keliais "elif" išlygais, bet yra trumpesnis. Pavyzdžiui, pirmiau nurodytą kodo dalį galima su užrašu "atvejis" perrašyti taip:

atvejis "$ count" 5) echo "skaičius yra penki" ;; 6) echo "skaičius yra šeši" ;; 7) echo "skaičius yra septyni" ;; 8) echo "skaičius yra aštuoni" ;; 9) echo "skaičius yra devyni" ;; *) echo "nė vienas iš aukščiau" esac

Jei teiginiai dažnai naudojami viduje , užmezgę kilpą arba kilpą, kaip šiame pavyzdyje:

Count = 1 done = 0, kol [$ count -le 9] miego 1 ((count ++)), jei [$ count == 5], tada tęskite "$ count" done echo Finished

Jūs taip pat galite turėti lizdus, ​​jei pareiškimai. Paprasčiausias įdėtas, jei pareiškimas yra formos: jei ... tada ... kitas ... jei ... tada ... fi ... fi. Tačiau, if-statement gali būti įtrauktas į savavališką sudėtingumą.

Taip pat žiūrėkite, kaip perduoti argumentus į bash scenarijų , kuris parodo, kaip naudoti sąlyginius parametrus, perduotus iš komandinės eilutės.

"Bash" apvalkale yra kitų programavimo konstrukcijų, tokių kaip " for-loops" , "in -loops" ir aritmetinės išraiškos .