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ų elifas
ir 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 Jei nė viena iš sąlygų negrąžina 0 būsenos, Atkreipkite dėmesį, kad Norėdami vykdyti kodo bloką jei kintamasis turi tam tikrą reikšmę: Norėdami patikrinti kelias vertes: Sąlygos gali būti bet kokios Linux komandos. Atitinkamas kodo blokas bus vykdomas, jei komanda bus vykdoma sėkmingai. Aukščiau pateiktame pavyzdyje nuo Taip pat galime įkišti kitą Tai naudinga, kai reikia patikrinti atskirą sąlygų rinkinį, kai įvykdoma pradinė sąlyga. Pavyzdžiui, šis kodas bando įdiegti žiniatinklio serverio programinę įrangą: 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 Panašus į bet kurį „Bash“ kodą, „ Vartotojas taip pat gali išsaugoti šį kodą scenarijaus faile ir vykdyti scenarijaus failą. The Norėdami suteikti šio failo vykdymo leidimus, paleiskite: Galiausiai, norėdami paleisti failą, paleiskite: Panašus į bet kurią programavimo kalbą, 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. 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.tada
teiginys turi būti naudojamas tik po to jeigu
ir elifas
pareiškimai ir neprivalomi po Kitas
pareiškimas.Pavyzdžiai
x=0, jei [ $x -eq 0 ] tada echo "X reikšmė yra 0" kitaip echo "X reikšmė nėra 0" fi
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
jei npm -v tada pakartokite "NPM yra sistemoje" kitu atveju sudo apt install npm fi
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.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
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
elifas
blokuoti taip pat.Vykdymas
jei...kitaip
: scenarijai ir komandų eilutė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ą.#!/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.chmod +x test.sh
./test.sh
Išvada
jei...kitaip
teiginys yra pagrindinis Basho bruožas. Išmokus jį naudoti, labai svarbu rašyti pagrindinius ir išplėstinius scenarijus.