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 Ha egyik feltétel sem ad vissza 0 állapotot, Vegye figyelembe, hogy a Kódblokk végrehajtásához ha egy változónak meghatározott értéke van: Több érték ellenőrzéséhez: A feltételek bármely Linux-parancs lehet. A megfelelő kódblokk végrehajtásra kerül, ha a parancs sikeresen lefut. A fenti példában mivel Fészkelhetünk másikat is 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: 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 Bármely Bash kódhoz hasonlóan, a A felhasználó ezt a kódot szkriptfájlba is mentheti, és végrehajthatja a parancsfájlt. A Ha végrehajtási engedélyt szeretne adni ehhez a fájlhoz, futtassa: Végül a fájl végrehajtásához futtassa: Bármely programozási nyelvhez hasonlóan, 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. 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.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
x=0 ha [ $x -eq 0 ] akkor echo "X értéke 0" else echo "X értéke nem 0" fi
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
ha npm -v, akkor echo "NPM jelen van a rendszerben" egyébként sudo apt install npm fi
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.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
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
elif
blokk is.Végrehajtó
ha más
: Szkriptek és parancssorha 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.#!/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.chmod +x test.sh
./test.sh
Következtetés
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.