Bash „ha más” kijelentés: oktatóanyag és példák

A Bash if…else utasításának használata feltételes kód végrehajtásához.

A Bash (Bourne Again Shell) egy shell parancssor és szkriptnyelv GNU/Linux operációs rendszerekben. Ez a legtöbb Linux disztribúció alapértelmezett shellje.

A feltételes utasítások létfontosságúak minden programozási nyelvben, lefordítva és leírva egyaránt. Lehetővé teszik a felhasználó számára, hogy előre meghatározott feltétel alapján végrehajtson egy kódrészletet, ami a programozási logika egyik alapja. Ebben a cikkben megtudjuk, hogyan kell használni a ha más feltételes kijelentés Bashban.

Bevezetés

A ha más A Bash-beli utasítás lehetővé teszi a felhasználó számára, hogy a feltételek alapján manipulálja a kódfolyamot. A felhasználó megadhat külön végrehajtandó kódblokkokat, amelyek közül végül csak az egyik kerül végrehajtásra futás közben, a megfelelő feltétel alapján, amely teljesül.

Vegye figyelembe, hogy kettőnél több feltétel is megadható, amelyekre elif kijelentés használható. A felhasználó tetszőleges számú feltételt megadhat a használatával elif, és végül egy alapértelmezett feltétel a használatával más Blokk. Lássunk erről többet az alábbi szintaxisban és példákban.

Általános szintaxis

Az általános szintaxis a ha más Bash-ban a következő kijelentés:

ha akkor  más  fi

Itt, ha a kielégíti, azaz ha 0-t ad vissza (siker), akkor az 1-es kódblokk végrehajtásra kerül. Ha a feltétel nem ad vissza 0-t, azaz hibaállapotot ad vissza, akkor a 2-es kódblokk végrehajtásra kerül. A ha más blokk a-val végződik fi nyilatkozat.

Több feltételnek megfelelő több blokk eseténelif használt:

ha akkor  elif akkor  elif akkor  ... ... más  fi

Itt sorrendben ellenőrizzük a feltételeket, és végrehajtjuk az első feltétel kódblokkját, amely 0 (sikeres) állapotot ad vissza. Például. ha nullától eltérő állapotot (hiba) ad vissza, akkor ellenőrizve van. Ha 0 állapotot ad vissza, kivégzik. Ezt követően a további feltételek nem kerülnek ellenőrzésre, és a kód végrehajtása a kód után folytatódik fi nyilatkozat.

Ha egyik feltétel sem ad vissza 0 állapotot, az else blokkban végrehajtódik. Vegye figyelembe, hogy az else blokk nem kötelező. Ha egyik feltétel sem teljesül, akkor is a nem más blokk van megadva, akkor nem fut le feltételes kódblokk, és a kód végrehajtása a kód után folytatódik fi nyilatkozatot, amint azt az alábbi folyamatábra mutatja.

Vegye figyelembe, hogy a azután utasítás csak azután használható ha és elif nyilatkozatok és nem szükséges után más nyilatkozat.

Példák

Kódblokk végrehajtásához ha egy változónak meghatározott értéke van:

x=0 ha [ $x -eq 0 ] akkor echo "X értéke 0" else echo "X értéke nem 0" fi

Több érték ellenőrzéséhez:

x=2 ha [ $x -eq 0 ] akkor echo "X értéke 0" elif [ $x -eq 1 ] akkor echo "X értéke 1" elif [ $x -eq 2 ], majd echo "értéke X 2" különben echo "X értéke nem 0" fi

A feltételek bármely Linux-parancs lehet. A megfelelő kódblokk végrehajtásra kerül, ha a parancs sikeresen lefut.

ha npm -v, akkor echo "NPM jelen van a rendszerben" egyébként sudo apt install npm fi

A fenti példában mivel npm nincs telepítve a rendszerbe, a parancs npm -v nullától eltérő állapotot adott vissza. Ezért a kód végrehajtása a más blokkban, ahol az npm-t a használatával telepítjük alkalmas csomagkezelő. Amint látjuk, a jelszó megadására késztetett, és megkezdődött az npm telepítése.

Fészkelhetünk másikat is ha más blokk belsejében egy ha, más vagy elif Blokk:

x=0 y=1 ha [ $x -eq 0 ] akkor visszhang "X 0" ha [ $y -eq 1 ] akkor echo "Y 1" else echo "Y nem 1" fi else echo "X is nem 0" fi

Ez akkor hasznos, ha a kezdeti feltétel teljesülése után külön feltételkészletet kell ellenőrizni.

A következő kód például egy webkiszolgáló szoftvert próbál meg telepíteni:

ha nginx -v, akkor echo "NGINX már telepítve van." különben ha a sudo apt install nginx, akkor echo "NGINX telepítés sikeres." elif sudo apt install apache2, then echo "APACHE2 telepítés sikeres." else echo "Nem lehet telepíteni semmilyen webes szoftvert." fi

A kód először ellenőrzi, hogy az Nginx már telepítve van-e a rendszerben. Ha igen, akkor csak megjelenik egy üzenet, és kilép. Ha nem, akkor megpróbálja telepíteni az Nginxet.

Ha valamilyen okból az Nginx nem telepíthető a rendszerbe a csomagból, akkor megpróbálja telepíteni az Apache2-t. Ha még az Apache2 is hibát ad a telepítés során, akkor kilép, és egy üzenetet jelenít meg, hogy nem lehet szoftvert telepíteni.

Hasonló módon egy beágyazott blokk is használható egy elif blokk is.

Végrehajtó ha más: Szkriptek és parancssor

Bármely Bash kódhoz hasonlóan, a ha más utasítás használható Bash shellben közvetlenül vagy egy végrehajtható shell script fájlból. Miután a Bash tolmács talál egy ha, más vagy elif utasítást, akkor folytatja a shellt, hogy a felhasználó belépjen a kódblokkba.

A felhasználó ezt a kódot szkriptfájlba is mentheti, és végrehajthatja a parancsfájlt.

A #!/bin/bash az elején megadja a fájl végrehajtásakor használandó értelmezőt. Bár manapság a Bash a leggyakrabban használt parancsértelmező, néhány felhasználó inkább az olyan parancsértelmezőket részesíti előnyben, mint a zsh, amelyet a bash helyett a fájl elején kell megadni.

Ha végrehajtási engedélyt szeretne adni ehhez a fájlhoz, futtassa:

chmod +x test.sh

Végül a fájl végrehajtásához futtassa:

./test.sh

Következtetés

Bármely programozási nyelvhez hasonlóan, ha más kijelentés Bash alapvető jellemzője. Használatának elsajátítása nagyban hozzájárul az alapvető és a haladó szkriptek írásához.