„Bash“ teiginys „jei dar“: mokymo programa ir pavyzdžiai

Naudojimas if…else sakinio Bash sąlyginio kodo vykdymui.

Bash (Bourne Again Shell) yra apvalkalo komandų eilutė ir scenarijų kalba GNU/Linux operacinėse sistemose. Tai yra numatytasis daugelio Linux platinimų apvalkalas.

Sąlyginiai teiginiai yra gyvybiškai svarbūs bet kurioje programavimo kalboje, sudaryti ir sudaryti scenarijus. Jie leidžia vartotojui vykdyti kodo dalį, pagrįstą iš anksto nustatyta sąlyga, kuri yra vienas iš programavimo logikos pagrindų. Šiame straipsnyje mes sužinosime, kaip naudoti jei...kitaip sąlyginis teiginys Bash.

Įvadas

The jei...kitaip „Bash“ teiginys leidžia vartotojui manipuliuoti kodo srautu pagal sąlygas. Vartotojas gali nurodyti atskirus vykdytinus kodo blokus, iš kurių tik vienas galiausiai bus įvykdytas vykdymo metu, atsižvelgiant į atitinkamą sąlygą, kuri įvykdoma.

Atminkite, kad gali būti nurodytos daugiau nei dvi sąlygos, kurioms elifas teiginys gali būti naudojamas. Naudotojas gali pateikti bet kokį skaičių sąlygų elifasir galiausiai numatytoji sąlyga naudojant Kitas blokas. Pažiūrėkime daugiau apie tai toliau pateiktoje sintaksėje ir pavyzdžiuose.

Bendroji sintaksė

Bendroji sintaksė, skirta jei...kitaip Bash teiginys yra:

jei tada  Kitas  fi

Čia, jei tenkina, t.y., jei grąžina 0 (sėkmė), tada vykdomas 1 kodo blokas. Jei sąlyga negrąžina 0, ty grąžina gedimo būseną, tada vykdomas 2 kodo blokas. The jei...kitaip blokas baigiasi a fi pareiškimas.

Jei yra keli blokai, atitinkantys kelias sąlygas,elifas yra naudojamas:

jei tada  elifas tada  elifas tada  ... ... Kitas  fi

Čia sąlygos tikrinamos eilės tvarka ir vykdomas pirmosios sąlygos, kuri grąžina būseną 0 (sėkmingas), kodo blokas. Pvz. jeigu grąžina ne nulinę būseną (gedimas), tada yra patikrinta. Jeigu grąžina būseną 0, yra įvykdytas. Po to kitos sąlygos nėra tikrinamos ir kodo vykdymas tęsiamas po kodo fi pareiškimas.

Jei nė viena iš sąlygų negrąžina 0 būsenos, Kitame bloke vykdomas. Atminkite, kad kitas blokas yra neprivalomas. Jei netenkinama jokia sąlyga, taip pat ne Kitas nurodytas blokas, joks sąlyginio kodo blokas nebus paleistas, o kodo vykdymas bus tęsiamas kodu po to fi pareiškimą, kaip parodyta toliau pateiktoje srauto diagramoje.

Atkreipkite dėmesį, kad tada teiginys turi būti naudojamas tik po to jeigu ir elifas pareiškimai ir neprivalomi po Kitas pareiškimas.

Pavyzdžiai

Norėdami vykdyti kodo bloką jei kintamasis turi tam tikrą reikšmę:

x=0, jei [ $x -eq 0 ] tada echo "X reikšmė yra 0" kitaip echo "X reikšmė nėra 0" fi

Norėdami patikrinti kelias vertes:

x=2, jei [ $x -eq 0 ] tada aidas "X reikšmė yra 0" elif [ $x -eq 1 ] tada aidas "X reikšmė yra 1" elif [ $x -eq 2 ], tada aidas "Value of X yra 2", kitaip aidas "X reikšmė nėra 0" fi

Sąlygos gali būti bet kokios Linux komandos. Atitinkamas kodo blokas bus vykdomas, jei komanda bus vykdoma sėkmingai.

jei npm -v tada pakartokite "NPM yra sistemoje" kitu atveju sudo apt install npm fi

Aukščiau pateiktame pavyzdyje nuo npm nebuvo įdiegta sistemoje, komanda npm -v grąžino ne nulinę būseną. Taigi, kodo vykdymas pateko į Kitas blokas, kuriame įdiegiame npm naudodami apt paketo tvarkyklė. Kaip matome, tai paskatino mane įvesti slaptažodį ir pradėjo diegti npm.

Taip pat galime įkišti kitą jei...kitaip blokas viduje an jeigu, Kitas arba elifas blokas:

x=0 y=1 jei [ $x -eq 0 ] tada aidas "X yra 0", jei [ $y -eq 1 ] tada aidas "Y yra 1" kitaip aidas "Y nėra 1" fi else aidas "X yra ne 0"fi

Tai naudinga, kai reikia patikrinti atskirą sąlygų rinkinį, kai įvykdoma pradinė sąlyga.

Pavyzdžiui, šis kodas bando įdiegti žiniatinklio serverio programinę įrangą:

jei nginx -v tada echo "NGINX jau įdiegtas." kitu atveju, jei sudo apt install nginx, tada pakartokite "NGINX diegimas sėkmingas". elif sudo apt install apache2 tada pakartokite "APACHE2 diegimas sėkmingas". else echo "Neįmanoma įdiegti jokios žiniatinklio programinės įrangos." fi

Kodas pirmiausia patikrina, ar „Nginx“ jau įdiegtas sistemoje. Jei taip, jis tiesiog parodo pranešimą ir išeina. Jei ne, jis bando įdiegti Nginx.

Jei dėl kokių nors priežasčių „Nginx“ nepavyko įdiegti sistemoje iš paketo, jis bando įdiegti „Apache2“. Jei net „Apache2“ pateikia klaidą diegiant, jis išeina ir rodomas pranešimas, kad negalima įdiegti jokios programinės įrangos.

Panašiai įdėtas blokas gali būti naudojamas viduje elifas blokuoti taip pat.

Vykdymas jei...kitaip: scenarijai ir komandų eilutė

Panašus į bet kurį „Bash“ kodą, „ jei...kitaip Teiginys gali būti naudojamas Bash shell tiesiogiai arba iš vykdomojo apvalkalo scenarijaus failo. Kai Bash vertėjas suranda an jeigu, Kitas arba elifas pareiškimą, jis tęsia apvalkalą, kad vartotojas galėtų įvesti kodo bloką.

Vartotojas taip pat gali išsaugoti šį kodą scenarijaus faile ir vykdyti scenarijaus failą.

The #!/bin/bash pradžioje nurodo interpretatorių, kuris bus naudojamas vykdant failą. Nors šiais laikais Bash yra dažniausiai naudojamas apvalkalas, kai kurie vartotojai teikia pirmenybę tokiems apvalkalams kaip zsh, kuris turėtų būti nurodytas vietoj bash šio failo pradžioje.

Norėdami suteikti šio failo vykdymo leidimus, paleiskite:

chmod +x test.sh

Galiausiai, norėdami paleisti failą, paleiskite:

./test.sh

Išvada

Panašus į bet kurią programavimo kalbą, jei...kitaip teiginys yra pagrindinis Basho bruožas. Išmokus jį naudoti, labai svarbu rašyti pagrindinius ir išplėstinius scenarijus.