Басх 'иф елсе' Изјава: Упутство и примери

Коришћење иф...елсе наредбе у Басху за условно извршавање кода.

Басх (Боурне Агаин Схелл) је командна линија љуске и језик скрипти у ГНУ/Линук оперативним системима. То је подразумевана љуска за већину Линук дистрибуција.

Условни искази су од виталног значаја у било ком програмском језику, компајлирани као и скриптовани. Они дозвољавају кориснику да изврши део кода на основу унапред дефинисаног услова, што је један од темеља програмске логике. У овом чланку ћемо научити како да користимо ако друго условни исказ у Баш.

Увод

Тхе ако друго наредба у Басх-у омогућава кориснику да манипулише током кода на основу услова. Корисник може специфицирати засебне блокове кода који ће се извршити, од којих ће се само један коначно извршити током времена извршавања, на основу одговарајућег услова који је задовољен.

Имајте на уму да се може навести више од два услова, за које елиф изјава се може користити. Корисник може дати било који број услова користећи елиф, и на крају подразумевани услов користећи друго блокирати. Хајде да видимо више о томе у синтакси и примерима у наставку.

Општа синтакса

Општа синтакса за ако друго изјава у Басху је:

ако онда  друго  фи

Овде, ако је задовољава, тј. ако врати 0 (успех), тада се извршава блок кода 1. Ако услов не врати 0, тј. враћа статус грешке, тада се извршава блок кода 2. Тхе ако друго блок се завршава са а фи изјава.

За више блокова који одговарају вишеструким условима,елиф се користи:

ако онда  елиф онда  елиф онда  ... ... остало  фи

Овде се проверавају услови по редоследу и извршава се блок кода првог услова који враћа статус 0 (успех). На пример. ако онда враћа статус који није нула (неуспех). је проверено. Ако враћа статус 0, се извршава. Након овога, даљи услови се не проверавају и извршавање кода се наставља на код после фи изјава.

Ако ниједан од услова не врати статус 0, у блоку елсе се извршава. Имајте на уму да је блок елсе опциони. Ако ниједан услов није задовољен, као и бр друго блок је наведен, ниједан условни блок кода се неће покренути, а извршавање кода ће се наставити на код након фи изјаву, као што је приказано у дијаграму тока испод.

Имајте на уму да је онда изјава се користи тек након ако и елиф изјаве и нису обавезне после друго изјава.

Примери

Да извршите блок кода ако променљива има одређену вредност:

к=0 ако [ $к -ек 0 ] онда ецхо "Вредност Кс је 0" иначе ецхо "Вредност Кс није 0" фи

Да бисте проверили више вредности:

к=2 иф [ $к -ек 0 ] онда ецхо "Вредност Кс је 0" елиф [ $к -ек 1 ] затим ецхо "Вредност Кс је 1" елиф [ $к -ек 2 ] затим ецхо "Вредност од Кс је 2" иначе ехо "Вредност Кс није 0" фи

Услови могу бити било које Линук команде. Одговарајући блок кода ће се извршити ако се команда успешно покрене.

ако нпм -в онда ецхо "НПМ присутан у систему" иначе судо апт инсталл нпм фи

У горњем примеру, пошто нпм није инсталиран у систему, команда нпм -в вратио статус који није нула. Дакле, извршење кода је ушло у друго блок, где инсталирамо нпм користећи погодан менаџер пакета. Као што видимо, то ме је навело да унесем лозинку и почело је инсталацију нпм-а.

Можемо угнездити и другу ако друго блок унутар ан ако, друго или елиф блокирати:

к=0 и=1 ако [ $к -ек 0 ] онда ехо "Кс је 0" ако [ $и -ек 1 ] онда ехо "И је 1" иначе ехо "И није 1" фи иначе ехо "Кс је не 0" фи

Ово је корисно када треба проверити посебан скуп услова када је почетни услов задовољен.

На пример, следећи код покушава да инсталира софтвер веб сервера:

ако нгинк -в онда ецхо "НГИНКС је већ инсталиран." у супротном ако судо апт инсталира нгинк онда ецхо „Инсталација НГИНКС је успела“. елиф судо апт инсталл апацхе2 тхен ецхо "АПАЦХЕ2 инсталација је успела." елсе ецхо "Није могуће инсталирати било који веб софтвер." фи

Код прво проверава да ли је Нгинк већ инсталиран у систему. Ако јесте, само приказује поруку и излази. Ако није, покушава да инсталира Нгинк.

Ако из неког разлога, Нгинк није могао да се инсталира у систем из пакета, покушава да инсталира Апацхе2. Ако чак и Апацхе2 даје грешку током инсталације, излази из приказа поруке да није могуће инсталирати софтвер.

На сличан начин, угнежђени блок се може користити унутар ан елиф блок такође.

Извршавање ако друго: Скрипте и командна линија

Слично било ком Басх коду, ако друго израз се може користити у Басх љусци директно или из извршне датотеке скрипте љуске. Једном када Басх тумач пронађе ан ако, друго или елиф израз, наставља љуску да би омогућио кориснику да уђе у блок кода.

Корисник такође може да сачува овај код у датотеци скрипте и да изврши датотеку скрипте.

Тхе #!/бин/басх на почетку одређује интерпретер који ће се користити када се датотека изврши. Иако је Басх најчешће коришћена шкољка данас, неки корисници више воле шкољке као што је зсх, које треба навести уместо басх на почетку ове датотеке.

Да бисте дали дозволе за извршавање ове датотеке, покрените:

цхмод +к тест.сх

Коначно, да бисте извршили датотеку, покрените:

./тест.сх

Закључак

Слично било ком програмском језику, ако друго изјава је основна карактеристика Басх-а. Учење о његовој употреби иде дуг пут у писању основних, као и напредних скрипти.