Ebben a témában meg fogjuk érteni, hogyan kell használni ha nyilatkozatok a Bash szkriptekben, hogy elvégezzük automatizált feladatainkat.
Bash, ha a kijelentések hasznosak. Feltételes feladatok végrehajtására szolgálnak az utasítások végrehajtásának szekvenciális folyamatában. Ha az állítások általában lehetővé teszik számunkra, hogy döntéseket hozzunk a Bash-szkripteinkben. Segítenek eldönteni, hogy az általunk beállított feltétel alapján futtassunk-e egy kódrészletet vagy sem.
Basic if nyilatkozatok
Az alapvető if utasítás azt parancsolja, hogy ha egy adott feltétel igaz, akkor csak egy adott műveletkészletet hajtson végre. Ha ez nem igaz, akkor ne hajtsa végre ezeket a műveleteket. Ha a nyilatkozat a következő formátumon alapul:
Szintaxis
if [ expression ]; then statements fi
közötti nyilatkozat akkor és lenni (Ha visszafelé) csak akkor kerül végrehajtásra, ha a kifejezés (a szögletes zárójelek között) igaz.
Jegyzet:Figyeljük meg az első sorban használt szóközöket és az első sor végén a pontosvesszőt; mindkettő használata kötelező.Ha feltételes állításvégződiklenni.
- Több feltétel használatához ÉS operátorral:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Több feltétel használatához az OR operátorral:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Az ÉS és VAGY operátorokkal rendelkező összetett kifejezésekhez a következő szintaxist használhatjuk:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Az alábbiakban néhány példa bemutatja az if utasítás használatát:
1. példa
Ebben a példában vegyen be egy tetszőleges számot, és ellenőrizze, hogy az érték nagyobb-e 125-nél.
mi az a hangszóró
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Kimenet
Ha beírjuk a 159-et, akkor a kimenet így fog kinézni:
2. példa
Ebben a példában a használatát mutatjuk be ha nyilatkozat két karakterlánc összehasonlításának egyszerű forgatókönyvével:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Kimenet
3. példa
Ebben a példában bemutatjuk a számok összehasonlítását az if utasítás használatával:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Kimenet
4. példa
Ebben a példában meghatározzuk, hogyan használjuk az ÉS operátort több feltétel felvételére az if kifejezésben:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Kimenet
5. példa
Ebben a példában meghatározzuk, hogyan használjuk az OR operátort több feltétel felvételére az if kifejezésben:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Kimenet
6. példa
Ebben a példában meg fogjuk határozni, hogyan kell az ÉS és a VAGY billentyűket használni több feltétel felvételéhez az if kifejezésben:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Kimenet
Az If utasítás beállításai a Bash Scriptingben
Ha az utasítás sok lehetőséget tartalmaz egy adott feladat végrehajtására. Ezeket az opciókat fájlműveletekhez, karakterlánc-műveletekhez stb. használhatjuk. Íme néhány leggyakrabban használt beállítás:
Opciók (üzemeltetők) | Leírás |
---|---|
! KIFEJEZÉS | Annak ellenőrzésére, hogy az EXPRESSION hamis-e. |
-n STRING | Annak ellenőrzése, hogy a STRING hossza nagyobb-e nullánál. |
-z STRING | Annak ellenőrzése, hogy a STRING hossza nulla-e (azaz üres-e) |
STRING1 == STRING2 | Annak ellenőrzése, hogy STRING1 egyenlő-e STRING2-vel. |
STRING1 != STRING2 | Annak ellenőrzése, hogy a STRING1 nem egyenlő-e a STRING2-vel. |
INTEGER1 -eq INTEGER2 | Annak ellenőrzésére, hogy az INTEGER1 számszerűen egyenlő-e INTEGER2-vel. |
INTEGER1 -gt INTEGER2 | Annak ellenőrzésére, hogy az INTEGER1 számszerűen nagyobb-e, mint az INTEGER2. |
INTEGER1 -lt INTEGER2 | Annak ellenőrzésére, hogy az INTEGER1 számszerűen kisebb-e, mint INTEGER2. |
-d FÁJL | Annak ellenőrzésére, hogy létezik-e FILE, és ez egy könyvtár. |
-e FÁJL | Annak ellenőrzésére, hogy létezik-e FILE. |
-r FÁJL | Annak ellenőrzésére, hogy létezik-e FILE, és megadták-e az olvasási engedélyt. |
-s FÁJL | Annak ellenőrzésére, hogy létezik-e FILE, és mérete nagyobb-e nullánál (ami azt jelenti, hogy nem üres). |
-w FÁJL | Annak ellenőrzésére, hogy létezik-e FILE, és megadták-e az írási engedélyt. |
x FÁJL | Annak ellenőrzésére, hogy létezik-e FILE, és megadták-e a végrehajtási engedélyt. |
Beágyazott If
Annyi „if utasítást” alkalmazhat, amennyi szükséges a bash szkripten belül. Az if utasítást egy másik 'if utasítás' belsejében is használhatjuk. Beágyazott If-kimutatásként ismert.
Példa
Ebben a példában a beágyazott if kifejezés használatával megtaláljuk a „ha egy adott szám nagyobb, mint 50, és ha páros szám”.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Kimenet
Ha az argumentum értéke 100, akkor a kimenet így fog kinézni:
Következtetés
Ebben a témában megvitattuk, hogyan használhatjuk a feltételes elágazást az utasítások szekvenciális végrehajtásában a bash if utasítással.