Android

Bash if..else utasítás

Is Papa John's Extra Cheesy Alfredo Pizza TOO Cheesy?

Is Papa John's Extra Cheesy Alfredo Pizza TOO Cheesy?

Tartalomjegyzék:

Anonim

A döntéshozatal a számítógépes programozás egyik legalapvetőbb fogalma. Csakúgy, mint bármely más programozási nyelvben, if , if , if , if , if , if , if , if if..else , if , if , akkor if..else , if a Bash utasításai felhasználhatók a kód végrehajtására egy adott feltétel alapján.

Ebben az oktatóanyagban bemutatjuk a Bash if utasítások alapjait, és megmutatjuk, hogyan kell használni őket a shell parancsfájlokban.

if nyilatkozat

Bash, if feltételes formák különbözőek lehetnek. A legalapvetőbb, if állítás a következő formában jelenik meg:

if TEST-COMMAND then STATEMENTS fi

Az if utasítás az if kulcsszóval kezdődik, amelyet a feltételes kifejezés és az then kulcsszó követ. Az állítás az fi kulcsszóval ér véget.

Ha a TEST-COMMAND igaznak bizonyul, akkor az STATEMENTS végrehajtásra kerül. Ha a TEST-COMMAND ad vissza, akkor semmi sem történik, az STATEMENTS figyelmen kívül hagyásra kerülnek.

Általában jó gyakorlat, ha mindig behúzzuk a kódot, és külön sorokat különítsünk el. A legtöbb ember úgy dönt, hogy akár négy-, akár két-helyes behúzást alkalmaz. A behúzások és az üres sorok a kódot jobban olvashatóvá és szervezetté teszik.

Nézzük meg a következő példakriptet, amely ellenőrzi, hogy egy adott szám nagyobb-e 10-nél.

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

Mentse el a kódot egy fájlba, és futtassa a parancssorból:

bash test.sh

A szkript felszólítja a szám megadására. Például ha beírja a 15-et, akkor a test true értékeli azért, mert a 15 nagyobb, mint 10, és az echo parancs végrehajtódik az then záradékban.

The variable is greater than 10.

if..else nyilatkozat

A Bash if..else nyilatkozat formája a következő:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

Ha a TEST-COMMAND igaznak bizonyul, akkor az STATEMENTS1 kerül végrehajtásra. Ellenkező esetben, ha a TEST-COMMAND ad vissza, akkor a STATEMENTS2 kerül végrehajtásra. Csak egy else kikötés lehet a nyilatkozatban.

Adjunk hozzá egy else záradékot az előző példafájlhoz:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else kijelentés

A Bash if..elif..else utasítás a következő formában jelenik meg:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

Ha a TEST-COMMAND1 True , akkor az STATEMENTS1 végrehajtásra kerül. Ha a TEST-COMMAND2 True , akkor a STATEMENTS2 végrehajtásra kerül. Ha egyik tesztparancs sem True , akkor a STATEMENTS2 végrehajtásra kerül.

A nyilatkozatban lehet egy vagy több elif záradék. A else záradék választható.

A körülményeket egymás után értékelik. Ha egy feltétel visszatér True a fennmaradó feltételek nem kerülnek végrehajtásra, és a programvezérlés az if utasítások végére kerül.

Adjunk hozzá egy elif záradékot az előző szkripthez:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

Beágyazott, if nyilatkozatok

A Bash lehetővé teszi, hogy az utasításokat egymásba ágyazza, if utasításokat tartalmazzák. A többszörös nyilatkozatot egy másik nyilatkozatba helyezheti.

A következő szkript három szám megadását kéri, és kinyomtatja a három szám közül a legnagyobb számot.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

Így néz ki a kimenet:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. A beágyazott if utasítások használata helyett általában hatékonyabb az eset utasítás használata.

Több feltétel

A logikai OR és AND operátorok lehetővé teszik több feltétel használatát az 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 utasítások helyett a logikai AND ( && ) operátort fogjuk használni.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

Tesztelő operátorok

Bash-ban a test a következő szintaxisformák egyikét veszi igénybe:

test EXPRESSION]

A teszt kifejezés tagadására használja a logikai NOT ( ! ) Operátort. A vonóságok összehasonlításakor mindig használjon egyszeri vagy dupla idézőjeleket, hogy elkerüljék a szavak felosztását vagy összekeveredését.

Az alábbiakban bemutatjuk a leggyakrabban használt operátorokat:

  • -n VAR - Igaz, ha a VAR hossza nagyobb, mint nulla. -z VAR - igaz, ha a VAR üres. STRING1 = STRING2 - Igaz [STRING1 és STRING2 azonosak. STRING1 != STRING2 - Az igaz STRING1 és STRING2 nem azonos. INTEGER1 -eq INTEGER2 - A valódi INTEGER1 és INTEGER2 azonosak. INTEGER1 -gt INTEGER2 - A valódi INTEGER1 nagyobb, mint az INTEGER2. INTEGER1 -lt INTEGER2 - A valódi INTEGER1 kevesebb, mint az INTEGER2. INTEGER1 -ge INTEGER2 - A valódi INTEGER1 egyenlő vagy nagyobb, mint az INTEGER2. INTEGER1 -le INTEGER2 - A valódi INTEGER1 egyenlő vagy kisebb, mint az INTEGER2. -h FILE - igaz, ha a FÁJL létezik és szimbolikus link. -r FILE - Igaz, ha a FÁJL létezik és olvasható. -w FILE - igaz, ha a FÁJL létezik és írható. -x FILE - igaz, ha a FÁJL létezik és futtatható. -d FILE - igaz, ha a FÁJL létezik és egy könyvtár. -e FILE - igaz, ha a FÁJL létezik és egy fájl, típusától (csomópont, könyvtár, aljzat stb.) függetlenül. -f FILE - igaz, ha a FÁJL létezik és egy normál fájl (nem könyvtár vagy eszköz).

Következtetés

Az if , if..else és if..elif..else utasítások lehetővé teszik a Bash parancsfájl végrehajtásának folyamatának ellenőrzését az adott feltételek értékelésével.

bash terminál