Ako napísať IF-Statements v Bash-Script

Príkazy, syntax a príklady

S if-statement, čo je typ podmieneného vyhlásenia, môžete vykonať rôzne akcie v závislosti od špecifikovaných podmienok. Účinne dáva systému rozhodovaciu schopnosť.

Príkladom najjednoduchšej formy if-statement by bolo:

count = 5 ak [$ count == 5] potom echo "count count" fi

V tomto príklade sa premenná "count" používa na špecifikáciu podmienky, ktorá sa používa ako súčasť vyhlásenia if. Pred spustením príkazu if sa premennej "count" priradí hodnota "5". Príkaz if sa potom skontroluje, či hodnota "count" je "5". Ak je to tak, vyhlásenie medzi kľúčovými slovami "potom" a "fi" sa vykoná, inak sa vykonajú všetky príkazy po is-statement. Kľúčové slovo "fi" je "if" spelled backward. Skriptovací jazyk bash používa túto konvenciu na označenie konca zložitého výrazu, takého vyhlásenia alebo vyhlásenia prípadu.

Príkaz "echo" vytlačí jeho argument, v tomto prípade hodnotu premennej "count", do okna terminálu. Odsadenie kódu medzi kľúčovými slovami príkazu if zvyšuje čitateľnosť, ale nie je potrebné.

Ak máte situáciu, kedy by mal byť kód vykonaný len vtedy, ak nie je podmienka pravdivá, môžete použiť kľúčové slovo "else" v príkaze if, ako v tomto príklade:

count = 5 ak [$ count == 5] potom echo "$ count" else echo "count nie je 5" fi

Ak je podmienka "$ count == 5" pravdivá, systém vytlačí hodnotu premennej "count", inak vypisuje reťazec "count not 5".

Ak chcete rozlišovať medzi viacerými podmienkami, môžete použiť kľúčové slovo "elif", ktoré je odvodené od "else if", ako v tomto príklade:

ak [$ count == 5] potom echo "count is five" elif [$ count == 6] potom echo "count is six" inak echo "none of the above" fi

Ak je "počet" "5", systém vytlačí "počet je päť". Ak "počet" nie je "5", ale "6", systém vytlačí "počet je šesť". Ak nie je "5" ani "6", systém vytlačí "žiadny z vyššie uvedených".

Ako ste si mohli uhádnuť, môžete mať ľubovoľný počet doložiek "elif". Príklad s viacerými podmienkami "elif" by bol:

ak je [$ count == 5] potom echo "count is five" elif [$ count == 6] potom echo "count is six" elif [$ count == 7] = 8] potom echo "počet je osem" elif [$ count == 9] potom echo "count is nine" inak echo "none of above" fi

Kompaktnejší spôsob, ako napísať takéto vyhlásenia s viacerými podmienkami, je metóda prípadu . Funguje podobne ako v prípade vyhlásenia s viacerými klauzulami "elif", ale je stručnejšia. Napríklad vyššie uvedený kód môže byť prepísaný pomocou príkazu "case" nasledovne:

prípad "$ count" v 5) echo "count is five" ;; 6) echo "počet je šesť"; 7) echo "počet je sedem"; 8) echo "počet je osem"; 9) echo "počet je deväť"; *) echo "žiadny z vyššie uvedených" esak

If-statements sa často používajú vo vnútri for-loops alebo while-loops ako v tomto príklade:

count = 1 done = 0 zatiaľ čo [$ count -le 9] urobí spánok 1 ((count ++)) ak [$ count == 5] pokračuje vo ech echo "$ count" done echo

Môžete tiež mať vnorené vyhlásenia. Najjednoduchšie vnorené, ak je vyhlásenie vo forme: if ... then ... else ... if ... then ... fi ... fi. Avšak, if-vyhlásenie môže byť vnorené s ľubovoľnou zložitosťou.

Pozrite tiež, ako odovzdať argumenty skriptu bash , ktorý ukazuje, ako používať podmienené podmienky na spracovanie parametrov odovzdaných z príkazového riadku.

Balík bash poskytuje ďalšie programovacie konštrukty, ako napríklad slučky , slučky a aritmetické výrazy .