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.
általában hatékonyabb acasenyilatkozat 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:

  • -n VAR – igaz, ha a hossza VAR nagyobb, mint nulla.
  • -z VAR – igaz, ha a VAR üres.
  • STRING1 = STRING2 – igaz, ha STRING1 és STRING2 egyenlő.
  • STRING1 != STRING2 – igaz, ha STRING1 és STRING2 nem egyenlő.,
  • INTEGER1 -eq INTEGER2 – True if INTEGER1 and INTEGER2 are equal.
  • INTEGER1 -gt INTEGER2 – True if INTEGER1 is greater than INTEGER2.
  • INTEGER1 -lt INTEGER2 – True if INTEGER1 is less than INTEGER2.
  • INTEGER1 -ge INTEGER2 – True if INTEGER1 is equal or greater than INTEGER2.
  • INTEGER1 -le INTEGER2 – True if INTEGER1 is equal or less than INTEGER2.,
  • -h FILE – True if the FILE exists and is a symbolic link.
  • -r FILE – True if the FILE exists and is readable.
  • -w FILE – True if the FILE exists and is writable.
  • -x FILE – True if the FILE exists and is executable.,
  • -dFILE – igaz, ha a FILE létezik és egy könyvtár.
  • -eFILE – igaz, ha a FILE létezik és egy fájl, típustól függetlenül (csomópont, könyvtár, aljzat stb.).).
  • -f FILE – igaz, ha a FILE lé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.