ez A bemutató végigvezeti az alapokat a Bash if nyilatkozatot, valamint megmutatja, hogyan kell használni a shell scriptek.
a döntéshozatal a számítógépes programozás egyik legalapvetőbb fogalma. Mint minden más programozási nyelvben, aif,if..else,if..elif..else és beágyazottif a Bash-ban szereplő állítások egy bizonyos feltétel alapján végrehajthatók.,
if Statement #
Bash if a kondicionálóknak különböző formájuk lehet. A legalapvetőbbif a nyilatkozat A következő formában jelenik meg:
if TEST-COMMANDthen STATEMENTSfi
aif a nyilatkozat aif kulcsszóval kezdődik, amelyet a feltételes kifejezés és athen kulcsszó. A nyilatkozat a fi kulcsszóval végződik.,
Ha aTEST-COMMANDTrue értékel, aSTATEMENTS végrehajtásra kerül. HaTEST-COMMAND visszaadja aFalse értéket, akkor semmi sem történik, aSTATEMENTS figyelmen kívül marad.
általában jó gyakorlat, hogy mindig behúzod a kódot és külön kódblokkokat üres sorokkal. A legtöbb ember úgy dönt, hogy használja akár 4-space vagy 2-space behúzás. A bemélyedések és az üres sorok olvashatóbbá és szervezettebbé teszik a kódot.,
nézzük meg a következő példa szkriptet, amely ellenőrzi, hogy egy adott szám nagyobb-e, mint 10:
#!/bin/bashecho -n "Enter a number: "read VARif ]then echo "The variable is greater than 10."fi
mentse el a kódot egy fájlba, majd futtassa azt a parancssorból:
bash test.sh
a szkript egy szám megadására kéri. Ha például beírja a 15-öt, akkor a test parancsot true értékre értékeli, mert 15 nagyobb, mint 10, és a echo parancsot a then záradékon belül hajtja végre.
The variable is greater than 10.
if..,else Statement #
The Bash if..else a nyilatkozat A következő formát ölti:
if TEST-COMMANDthen STATEMENTS1else STATEMENTS2fi
Ha a TEST-COMMAND értékel , a STATEMENTS1 kerül végrehajtásra. Ellenkező esetben, ha TEST-COMMAND visszatér False, a STATEMENTS2 kerül végrehajtásra. Csak egy else záradék lehet a nyilatkozatban.,
adjunk hozzá egy else záradékot az előző példa szkripthez:
ha futtatja a kódot, és beír egy számot, a szkript egy másik üzenetet nyomtat annak alapján, hogy a szám nagyobb vagy kisebb/egyenlő-e 10-vel.
if..elif..else Statement #
The Bash if..elif..else a nyilatkozat A következő formát ölti:
if TEST-COMMAND1then STATEMENTS1elif TEST-COMMAND2then STATEMENTS2else STATEMENTS3fi
Ha a TEST-COMMAND1 értékel , a STATEMENTS1 kerül végrehajtásra., Ha a TEST-COMMAND2 True értékel, akkor a STATEMENTS2 kerül végrehajtásra. Ha a tesztparancsok egyike sem értékeli a True értéket, akkor a STATEMENTS2 kerül végrehajtásra.
lehet egy vagy több elif záradékok a nyilatkozatban. A else záradék nem kötelező.
a feltételeket egymás után értékelik., Ha egy feltétel visszaadja a Truea fennmaradó feltételeket nem hajtják végre, és a programvezérlés a if utasítások végére kerül.
adjunk hozzá egyelif záradékot az előző szkripthez:
beágyazott if nyilatkozatok #
Bash lehetővé teszi, hogy fészketif nyilatkozatok aif nyilatkozatokon belül. Több if nyilatkozatot helyezhet el egy másik if nyilatkozatban.,
a következő parancsfájl három szám megadására szólít fel, és a három szám közül a legnagyobb számot nyomtatja ki.
így fog kinézni a kimenet:
Enter the first number: 4Enter the second number: 7Enter the third number: 27 is the largest number.
casenyilatkozat helyett beágyazottif nyilatkozatok.több feltétel #
a logikaiOR és AND az operátorok lehetővé teszik több feltétel használatát a if utasításokban.,
itt van a szkript egy másik verziója, amely a három szám közül a legnagyobb számot nyomtatja ki. Ebben a verzióban a beágyazott if állítások helyett a logikai AND (&&) operátort használjuk.
Tesztüzemeltetők #
a Bash, a test parancs az alábbi szintaxis formák:
test EXPRESSION]
a szkript hordozható, inkább a régi teszt [ > parancs, amely elérhető az összes POSIX kagyló., A test parancs [[ (dupla zárójelben) új, továbbfejlesztett változatát a legtöbb modern rendszer támogatja, a Bash, a Zsh és a Ksh alapértelmezett héjként.
a teszt kifejezés elutasításához használja a logikai NOT (!) operátort. A karakterláncok összehasonlításakor mindig használjon egy-vagy kettős idézőjelet, hogy elkerülje a szavak felosztását és a gömbölyű kérdéseket.,
Az alábbiakban néhány a leggyakrabban használt operátorok:
-
-nVAR– igaz, ha a hosszaVARnagyobb, mint nulla. -
-zVAR– igaz, ha aVARüres. -
STRING1 = STRING2– igaz, haSTRING1ésSTRING2egyenlő. -
STRING1 != STRING2– igaz, haSTRING1ésSTRING2nem egyenlő., -
INTEGER1 -eq INTEGER2– True ifINTEGER1andINTEGER2are equal. -
INTEGER1 -gt INTEGER2– True ifINTEGER1is greater thanINTEGER2. -
INTEGER1 -lt INTEGER2– True ifINTEGER1is less thanINTEGER2. -
INTEGER1 -ge INTEGER2– True ifINTEGER1is equal or greater than INTEGER2. -
INTEGER1 -le INTEGER2– True ifINTEGER1is equal or less thanINTEGER2., -
-hFILE– True if theFILEexists and is a symbolic link. -
-rFILE– True if theFILEexists and is readable. -
-wFILE– True if theFILEexists and is writable. -
-xFILE– True if theFILEexists and is executable., -
-dFILE– igaz, ha aFILElétezik és egy könyvtár. -
-eFILE– igaz, ha aFILElétezik és egy fájl, típustól függetlenül (csomópont, könyvtár, aljzat stb.).). -
-fFILE– igaz, ha aFILElétezik és egy szabályos fájl (nem könyvtár vagy eszköz).,
következtetés #
The if, if..else and if..elif..else az állítások lehetővé teszik a Bash szkript végrehajtásának ellenőrzését az adott feltételek értékelésével.