Коришћење иф...елсе наредбе у Басху за условно извршавање кода.
Басх (Боурне Агаин Схелл) је командна линија љуске и језик скрипти у ГНУ/Линук оперативним системима. То је подразумевана љуска за већину Линук дистрибуција.
Условни искази су од виталног значаја у било ком програмском језику, компајлирани као и скриптовани. Они дозвољавају кориснику да изврши део кода на основу унапред дефинисаног услова, што је један од темеља програмске логике. У овом чланку ћемо научити како да користимо ако друго
условни исказ у Баш.
Увод
Тхе ако друго
наредба у Басх-у омогућава кориснику да манипулише током кода на основу услова. Корисник може специфицирати засебне блокове кода који ће се извршити, од којих ће се само један коначно извршити током времена извршавања, на основу одговарајућег услова који је задовољен.
Имајте на уму да се може навести више од два услова, за које елиф
изјава се може користити. Корисник може дати било који број услова користећи елиф
, и на крају подразумевани услов користећи друго
блокирати. Хајде да видимо више о томе у синтакси и примерима у наставку.
Општа синтакса
Општа синтакса за ако друго
изјава у Басху је:
ако онда друго фи
Овде, ако је задовољава, тј. ако врати 0 (успех), тада се извршава блок кода 1. Ако услов не врати 0, тј. враћа статус грешке, тада се извршава блок кода 2. Тхе
ако друго
блок се завршава са а фи
изјава.
За више блокова који одговарају вишеструким условима,елиф
се користи:
ако онда елиф онда елиф онда ... ... остало фи
Овде се проверавају услови по редоследу и извршава се блок кода првог услова који враћа статус 0 (успех). На пример. ако Ако ниједан од услова не врати статус 0, Имајте на уму да је Да извршите блок кода ако променљива има одређену вредност: Да бисте проверили више вредности: Услови могу бити било које Линук команде. Одговарајући блок кода ће се извршити ако се команда успешно покрене. У горњем примеру, пошто Можемо угнездити и другу Ово је корисно када треба проверити посебан скуп услова када је почетни услов задовољен. На пример, следећи код покушава да инсталира софтвер веб сервера: Код прво проверава да ли је Нгинк већ инсталиран у систему. Ако јесте, само приказује поруку и излази. Ако није, покушава да инсталира Нгинк. Ако из неког разлога, Нгинк није могао да се инсталира у систем из пакета, покушава да инсталира Апацхе2. Ако чак и Апацхе2 даје грешку током инсталације, излази из приказа поруке да није могуће инсталирати софтвер. На сличан начин, угнежђени блок се може користити унутар ан Слично било ком Басх коду, Корисник такође може да сачува овај код у датотеци скрипте и да изврши датотеку скрипте. Тхе Да бисте дали дозволе за извршавање ове датотеке, покрените: Коначно, да бисте извршили датотеку, покрените: Слично било ком програмском језику, онда враћа статус који није нула (неуспех).
је проверено. Ако
враћа статус 0,
се извршава. Након овога, даљи услови се не проверавају и извршавање кода се наставља на код после
фи
изјава. у блоку елсе се извршава. Имајте на уму да је блок елсе опциони. Ако ниједан услов није задовољен, као и бр
друго
блок је наведен, ниједан условни блок кода се неће покренути, а извршавање кода ће се наставити на код након фи
изјаву, као што је приказано у дијаграму тока испод.онда
изјава се користи тек након ако
и елиф
изјаве и нису обавезне после друго
изјава.Примери
к=0 ако [ $к -ек 0 ] онда ецхо "Вредност Кс је 0" иначе ецхо "Вредност Кс није 0" фи
к=2 иф [ $к -ек 0 ] онда ецхо "Вредност Кс је 0" елиф [ $к -ек 1 ] затим ецхо "Вредност Кс је 1" елиф [ $к -ек 2 ] затим ецхо "Вредност од Кс је 2" иначе ехо "Вредност Кс није 0" фи
ако нпм -в онда ецхо "НПМ присутан у систему" иначе судо апт инсталл нпм фи
нпм
није инсталиран у систему, команда нпм -в
вратио статус који није нула. Дакле, извршење кода је ушло у друго
блок, где инсталирамо нпм користећи погодан
менаџер пакета. Као што видимо, то ме је навело да унесем лозинку и почело је инсталацију нпм-а.ако друго
блок унутар ан ако
, друго
или елиф
блокирати:к=0 и=1 ако [ $к -ек 0 ] онда ехо "Кс је 0" ако [ $и -ек 1 ] онда ехо "И је 1" иначе ехо "И није 1" фи иначе ехо "Кс је не 0" фи
ако нгинк -в онда ецхо "НГИНКС је већ инсталиран." у супротном ако судо апт инсталира нгинк онда ецхо „Инсталација НГИНКС је успела“. елиф судо апт инсталл апацхе2 тхен ецхо "АПАЦХЕ2 инсталација је успела." елсе ецхо "Није могуће инсталирати било који веб софтвер." фи
елиф
блок такође.Извршавање
ако друго
: Скрипте и командна линијаако друго
израз се може користити у Басх љусци директно или из извршне датотеке скрипте љуске. Једном када Басх тумач пронађе ан ако
, друго
или елиф
израз, наставља љуску да би омогућио кориснику да уђе у блок кода.#!/бин/басх
на почетку одређује интерпретер који ће се користити када се датотека изврши. Иако је Басх најчешће коришћена шкољка данас, неки корисници више воле шкољке као што је зсх, које треба навести уместо басх на почетку ове датотеке.цхмод +к тест.сх
./тест.сх
Закључак
ако друго
изјава је основна карактеристика Басх-а. Учење о његовој употреби иде дуг пут у писању основних, као и напредних скрипти.