logo

Bash If

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:

Bash If nyilatkozat

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

Bash If nyilatkozat

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

Bash If nyilatkozat

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

Bash If nyilatkozat

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

Bash If nyilatkozat

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

Bash If nyilatkozat

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:

Bash If nyilatkozat

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.