Kuidas kirjutada IF-avaldusi Bash-script

Käsud, süntaks ja näited

If-statement, mis on tingimuslik avaldus, saate teha erinevaid toiminguid, sõltuvalt konkreetsetest tingimustest. See annab süsteemile tõhusa otsustusvõime.

If-avalduse lihtsaima vormi näide oleks järgmine:

count = 5, kui [$ count == 5], siis echo "$ count" fi

Selles näites kasutatakse muutuja "count" määramaks tingimust, mida kasutatakse kui if-statement. Enne IF-avalduse täitmist määratakse muutuja "count" väärtuseks "5". Seejärel kontrollib "if-statement", kas "count" väärtus on "5". Kui see nii on, siis täidetakse märge "siis" ja "fi" vaheline avaldus, vastasel juhul käivitatakse if-statement järgivad avaldused. Märksõna fi on "if" kirjutatud tagasi. Basši skriptikeem kasutab seda konventsiooni, et tähistada keerulise väljendi lõppu, näiteks if-statement või case-statements.

"Echo" avaldus trükib oma argumendi, antud juhul muutuja "count" väärtuse terminaliaknasse. Kui-i koodi sisestamine mõne if-märke märksõnade vahel parandab loetavust, kuid see ei ole vajalik.

Kui teil on olukord, kus koodi tuleks täita ainult juhul, kui tingimus ei ole tõsi, võite kasutada märksõna "else" kui-avalduses, nagu käesolevas näites:

count = 5 kui [$ count == 5] siis echo "$ count" muu echo "count is not 5" fi

Kui tingimus "$ count == 5" on tõene, trükkab süsteem muutuja "count" väärtust, muidu prindib see string "count not 5".

Kui soovite eristada mitut tingimust, võite kasutada märksõna "elif", mis pärineb "muust kui", nagu käesolevas näites:

kui [$ count == 5] siis echo "count is five" elif [$ count == 6], siis echo "count on six", echo "none of the above" fi

Kui "count" on "5", siis väljastatakse süsteem välja "count is five". Kui "count" ei ole "5", vaid "6", trükib süsteem "count is six". Kui see ei ole "5" ega "6", siis prindib süsteem "ülalolevast".

Nagu võisid arvata, võib teil olla ükskõik milline "elif" klausel. Näide mitmete elif-tingimustega oleks järgmine:

kui [$ count == 5] siis echo "count is five" elif [$ count == 6], siis echo "count is six" elif [$ count == 7], siis echo "count is seven" elif [$ count = = 8], siis echo "loenduseks on kaheksa" elif [$ count == 9], siis echo "count on nine", echo "none of the above" fi

Kompaktne viis selliste avalduste kirjutamiseks mitme tingimusega on juhtumeetod. See toimib sarnaselt multiple-elif-klauslitega if-statement, kuid on lühem. Näiteks võib ülaltoodud tüki koodi uuesti kirjutada juhtumi avaldusega järgmiselt:

juhtum "$ count" on 5) echo "count on five" ;; 6) kaja "arv on kuus"; 7) kaja "count on seitse"; 8) kaja "arv on kaheksa" ;; 9) kaja "loenduseks on üheksa"; *) kajastab "ükski ülaltoodud" esak

Kui-avaldusi kasutatakse tihti seespool silmuse või ahela jaoks, nagu käesolevas näites:

count = 1 done = 0, samal ajal kui [$ count -le 9] unelib 1 ((loend ++)), kui [$ count == 5] jätkatakse, siis jätkatakse salvestamist "$ count" done echo Finished

Võimalik, et kui olete avaldused pandud. Lihtsamad pesa, kui avaldus on kujul: kui ... siis ... veel ... kui ... siis ... fi ... fi. Kuid if-statement võib paigutada suvalise keerukusega.

Vaadake ka seda, kuidas argumente teisaldada bash-skripti , mis näitab, kuidas kasutada käskude abil edastatavate parameetrite töötlemiseks tinglejaid.

Bashi kast pakub teisi programmeerimiskonstruktsioone, näiteks for-loops , time-loops ja aritmeetilisi väljendeid .