Kako napisati IF-izjave v bash-Scriptu

Ukazi, sintaksa in primeri

Če je izjava if, ki je vrsta pogojnega stavka, lahko izvajate različna dejanja, odvisno od določenih pogojev. Učinkovito daje sistemu možnost sprejemanja odločitev.

Primer najpreprosteje oblike if-izjave bi bil:

count = 5, če [$ count == 5] potem echo "$ count" fi

V tem primeru se spremenljivka "count" uporablja za določitev pogoja, ki se uporablja kot del stavka if-statement. Pred izvedbo if-izjave je spremenljivki "count" dodeljena vrednost "5". Izjava if-če preveri, ali je vrednost "count" "5". Če je tako, se izvede izjava med ključnimi besedami "potem" in "fi", sicer se izvršijo izjave, ki sledijo izjavi if. Ključna beseda "fi" je "če" napisana nazaj. Bash skriptni jezik uporablja to konvencijo, da označi konec zapletenega izraza, takšne if-statement ali case-statements.

Stavek "echo" natisne svoj argument, v tem primeru vrednost spremenljivke "count", v terminalsko okno. Vnos kode med ključnimi besedami stavka-če izboljša berljivost, vendar ni potreben.

Če imate situacijo, v kateri bi bilo treba kodo izvršiti samo, če pogoj ni res, lahko uporabite ključno besedo "else" v if-statement, kot v tem primeru:

count = 5, če [$ count == 5] potem echo "$ count" else echo "count ni 5" fi

Če je pogoj "$ count == 5" resničen, sistem natisne vrednost spremenljivke "count", v nasprotnem primeru natisne niz "štetje ni 5".

Če želite razlikovati med več pogoji, lahko uporabite ključno besedo "elif", ki izhaja iz "else if", kot v tem primeru:

če [$ count == 5] potem echo "count je pet" elif [$ count == 6] potem echo "count je šest" drugače echo "nobenega od zgoraj navedenih" fi

Če je "count" "5", sistem izpisuje "count je pet". Če "count" ni "5", ampak "6", sistem natisne "štetje je šest". Če ni niti "5" niti "6", sistem natisne "nič od zgoraj".

Kot ste morda mislili, lahko imate katero koli število "elif" klavzul. Primer z več "elifnimi" pogoji bi bil:

če [$ count == 5] potem echo "count je pet" elif [$ count == 6] potem echo "count je šest" elif [$ count == 7] potem echo "count je sedem" elif [$ count = = 8] potem echo "count je osem" elif [$ count == 9] potem echo "count je devet" drugače echo "nobenega od zgoraj navedenih" fi

Točnejši način pisanja takšnih izjav z več pogoji je metoda primera . Deluje podobno kot if-statement z več klavzulami "elif", vendar je bolj jedrnat. Na primer, zgornji kos kode je mogoče ponovno napisati z izjavo »primer«, kot sledi:

primer "$ count" v 5) echo "count je pet" ;; 6) echo "count je šest" ;; 7) echo "count je sedem" ;; 8) echo "count je osem" ;; 9) echo "count je devet" ;; *) echo "nič od zgoraj" esac

Če so izjave pogosto uporabljene znotraj zank ali zank, kot v tem primeru:

count = 1 done = 0, medtem ko [$ count -le 9] spi 1 ((count ++)), če [$ count == 5] nadaljujemo s finim izborom "$ count" done echo Finished

Imate lahko tudi gnezdene izjave. Najenostavnejši ugnezdeni, če je izjava v obliki: če ... potem ... drugače ... če ... potem ... fi ... fi. Če pa je izjava lahko ugnezdena s poljubno zapletenostjo.

Glej tudi, kako posredovati argumente skriptu bash , ki prikazuje, kako uporabiti pogoj za obdelavo parametrov, prenesenih iz ukazne vrstice.

Bashova lupina nudi druge programske konstrukte, kot so for-loops , while-zanke in aritmetični izrazi .