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-COMMAND
True
é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 True
a 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.
case
nyilatkozat 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 hosszaVAR
nagyobb, mint nulla. -
-z
VAR
– igaz, ha aVAR
üres. -
STRING1 = STRING2
– igaz, haSTRING1
ésSTRING2
egyenlő. -
STRING1 != STRING2
– igaz, haSTRING1
ésSTRING2
nem egyenlő., -
INTEGER1 -eq INTEGER2
– True ifINTEGER1
andINTEGER2
are equal. -
INTEGER1 -gt INTEGER2
– True ifINTEGER1
is greater thanINTEGER2
. -
INTEGER1 -lt INTEGER2
– True ifINTEGER1
is less thanINTEGER2
. -
INTEGER1 -ge INTEGER2
– True ifINTEGER1
is equal or greater than INTEGER2. -
INTEGER1 -le INTEGER2
– True ifINTEGER1
is equal or less thanINTEGER2
., -
-h
FILE
– True if theFILE
exists and is a symbolic link. -
-r
FILE
– True if theFILE
exists and is readable. -
-w
FILE
– True if theFILE
exists and is writable. -
-x
FILE
– True if theFILE
exists and is executable., -
-d
FILE
– igaz, ha aFILE
létezik és egy könyvtár. -
-e
FILE
– igaz, ha aFILE
létezik és egy fájl, típustól függetlenül (csomópont, könyvtár, aljzat stb.).). -
-f
FILE
– igaz, ha aFILE
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.