- Az „Ha” nyilatkozat használata
- Az „If-Else” nyilatkozat használata
- Az „If-Elif-Else” nyilatkozat használata
- Az „If” utasítás használata üres változó ellenőrzésére
- Az „If” utasítás használata logikai operátorral
- A beágyazott „Ha” utasítások használata
- Az „If” utasítás használata a fájl létezésének ellenőrzésére
- Az „If” utasítás használata a címtár meglétének ellenőrzésére
- Az „Ha” nyilatkozat használata a Regex-szel
- Az „eset” nyilatkozat használata
Az „Ha” nyilatkozat használata
Ez a példa az „if” utasítás egyszerű használatát mutatja be a Bash-ban. Hatféle összehasonlító operátor használható a Bash számértékeinek összehasonlítására. Ezek a következők: „-eq” (egyenlő), „-ne” (nem egyenlő), „-le” (kisebb, mint egyenlő), „-ge” (nagyobb, mint egyenlő), „-lt” (kisebb, mint) és „ -gt” (nagyobb, mint). A „-lt” és „-eq” használata a következő szkriptben látható, függetlenül attól, hogy a szám kisebb-e, mint 99, vagy nem ellenőrizték az „-lt” operátorral. A szám páros vagy páratlan, és a „-eq” operátor ellenőrzi.
#!/bin/bash
#Numerikus érték hozzárendelése
( ( szám = ötven ) )
#Ellenőrizze a számértéket az „if” utasítással
ha [ $szám -lt 99 ]
akkor
visszhang – A szám érvényes.
lenni
#Ellenőrizze, hogy a szám páros-e vagy sem
ha [ $ ( ( $szám % 2 ) ) -eq 0 ]
akkor
visszhang – A szám páros.
lenni
Kimenet :
Az előző szkript végrehajtása után a következő kimenet jelenik meg:
Az „If-Else” nyilatkozat használata
Az „if-else” utasítás használatát a következő szkript mutatja be. A rendszer egy karakterlánc-értéket vesz a felhasználótól, és az „if-else” utasítás használatával ellenőrzi, hogy az érték „KÉK”-e vagy sem.
#!/bin/bash
#Vegyél el egy karakterlánc értéket a felhasználótól
olvas -o 'Adja meg kedvenc színét:' szín
#Ellenőrizze a karakterlánc értékét az „if-else” utasítással
ha [ ${color^^} == 'KÉK' ]
akkor
visszhang 'Rendben, kék szín is elérhető.'
más
visszhang ' $szín nem elérhető.'
lenni
Kimenet :
A következő kimenet jelenik meg az előző szkript végrehajtása után, ha a „piros” bemenetet veszi:
A következő kimenet jelenik meg az előző szkript végrehajtása után, ha a „kék” bemenetet veszi:
Az „If-Elif-Else” nyilatkozat használata
Az „if-elif-else” utasítás használatát a következő szkript mutatja be. A rendszer egy számot vesz a felhasználótól, és a különböző értékekkel ellenőrzi, amíg egyezést nem talál. Ha talál egyezést, a rendszer kinyomtatja a megfelelő üzenetet. Ha nem található egyezés, a rendszer az alapértelmezett üzenetet nyomtatja ki.
#!/bin/bash#Vegye el az id értéket a felhasználótól
olvas -o 'Adja meg sorozatszámát:' sorozatszám
#Ellenőrizze a bemeneti értéket az „if-elif-else” utasítással
ha [ $soros == '4523' ]
akkor
visszhang 'Az A csoportba választották.'
Elif [ $soros == '8723' ]
akkor
visszhang 'Ön a B csoportba került kiválasztásra.'
Elif [ $soros == '3412' ]
akkor
visszhang 'Ön a C csoportba került kiválasztásra.'
más
visszhang 'Nem vagy kiválasztott' .
lenni
Kimenet:
A következő kimenet jelenik meg a 8723 értékű szkript végrehajtása után:
A következő kimenet jelenik meg a 9078 értékű szkript végrehajtása után:
Az „If” utasítás használata üres változó ellenőrzésére
A következő szkriptben látható a módszer annak ellenőrzésére, hogy egy változó üres-e „if” utasítás nélkül. A „-z” opciót az „if” utasításban használják ennek a feladatnak a végrehajtásához.
#!/bin/bash#Vegye el az id értéket a felhasználótól
olvas -o 'Adja meg sorozatszámát:' sorozatszám
#Ellenőrizze, hogy a változó üres-e vagy sem
ha [ ! -Val vel $soros ]
akkor
#Ellenőrizze a bemeneti értéket az „if-elif-else” utasítással
ha [ $soros == '690' ]
akkor
visszhang 'Ön az 1-es csapatban kiválasztott.'
Elif [ $soros == '450' ]
akkor
visszhang 'Téged a 2-es csapatba választottak.'
más
visszhang 'Nem vagy kiválasztott' .
lenni
más
visszhang – Nincs megadva sorozatszám.
lenni
Kimenet :
A következő kimenet jelenik meg a 690 értékű szkript végrehajtása után:
A következő kimenet jelenik meg a szkript végrehajtása után, ha nincs bemeneti érték:
Az „If” utasítás használata logikai operátorokkal
A Bash feltételes utasításban háromféle logikai operátor használható. Ezek logikai VAGY (||), logikai ÉS (&&) és logikai NEM (!). A kód értéket a felhasználótól veszik. Ha a bemeneti érték nem üres, akkor a rendszer két kódértékkel ellenőrzi az értéket logikai VAGY használatával. Ha az érték bármely kóddal megegyezik, a megfelelő üzenet kinyomtatásra kerül. Ha nem található megfelelő kód, a rendszer az alapértelmezett üzenetet nyomtatja ki.
#!/bin/bash#Vegye el a kurzuskódot a felhasználótól
olvas -o 'Írja be a tanfolyam kódját:' kód
#Ellenőrizze, hogy a változó üres-e vagy sem
ha [ ! -Val vel $kód ]
akkor
#Ellenőrizze a bemeneti értéket az „if-elif-else” utasítással
ha [ [ $kód == 'CSE-106' || $kód == 'CSE-108' ] ]
akkor
visszhang 'CSE tanfolyam.'
Elif [ [ $kód == 'BBA-203' || $kód == 'BBA-202' ] ]
akkor
visszhang – BBA tanfolyam.
más
visszhang 'Érvénytelen kurzuskód.'
lenni
más
visszhang 'Nincs kurzuskód megadva.'
lenni
Kimenet :
A következő kimenet jelenik meg a „CSE-108” bemeneti értékű szkript végrehajtása után:
A következő kimenet jelenik meg a „BBA-56” bemeneti értékkel rendelkező szkript végrehajtása után:
A beágyazott „Ha” utasítások használata
Ha egy „if” feltételt egy másik „if” feltételen belül használunk, azt beágyazott „if” utasításnak nevezzük. A beágyazott „if” használatának módja a következő szkriptben látható. Két jelölési értéket veszünk a felhasználótól. Ha a bemeneti értékek nem üresek, az első „if” feltétel azt ellenőrzi, hogy a „$theory” értéke nagyobb-e vagy egyenlő-e 60-nál vagy sem. Ha az első „if” feltétel „igaz” értékkel tér vissza, a második „if” feltétel ellenőrzi, hogy a „$lab” értéke nagyobb-e vagy egyenlő-e 50-el vagy sem. Ha a második „ha” feltétel is „igaz”-t ad vissza, a rendszer sikeres üzenetet nyomtat. Ellenkező esetben hibaüzenet kerül kinyomtatásra.
#!/bin/bash#Vegye fel az elméleti jegyet
olvas -o 'Írja be az elméleti jelet:' elmélet
#Vedd le a laborjelet
olvas -o 'Írja be a laborjelet:' labor
#Ellenőrizze, hogy a változók üresek-e vagy sem
ha [ [ ! -Val vel $elmélet && ! -Val vel $lab ] ]
akkor
#Ellenőrizze a bemeneti értékeket egy beágyazott „if” utasítással
ha [ $elmélet -ge 60 ]
akkor
ha [ $lab -ge ötven ]
akkor
visszhang – Átmentél.
más
visszhang – Elbuktál.
lenni
más
visszhang – Elbuktál.
lenni
más
visszhang 'Az elmélet vagy a laborjegy üres.'
lenni
Kimenet :
A következő kimenet jelenik meg, ha mindkét vagy az egyik bemeneti érték üres:
A következő kimenet jelenik meg, ha a 78-at elméleti jegynek, a 45-öt pedig laboratóriumi jegynek vesszük. Itt a második „ha” feltétel „false”-t ad vissza:
A következő kimenet jelenik meg, ha a 67-et elméleti jegynek, az 56-ot pedig laborjegynek vesszük. Itt mindkét „ha” feltétel „igaz” értéket ad vissza:
A következő kimenet jelenik meg, ha az 50-et elméleti jegynek, a 80-ast pedig laboratóriumi jegynek vesszük. Itt az első „if” feltétel „false”-t ad vissza:
Az „If” utasítás használata a fájl létezésének ellenőrzésére
A fájl létezését a bash szkript kétféleképpen tudja ellenőrizni. Az egyik a „-f” operátor használata „[]” zárójelekkel. Egy másik a „teszt” parancsot és az „-f” operátort használja. A rendszer egy fájlnevet vesz, és ellenőrzi a fájl létezését az „if” feltétel használatával, a „-f” operátorral. Ezután egy másik fájlnevet veszünk, és ellenőrizzük a fájl létezését az „if” utasítással a „test” paranccsal és a „-f” operátorral.
#!/bin/bash#Vegye fel a fájlnevet
olvas -o 'Adjon meg egy fájlnevet:' fn1
#Ellenőrizze, hogy a fájl létezik-e vagy sem, a 'teszt' használata nélkül
ha [ -f $fn1 ]
akkor
visszhang ' $fn1 A fájl létezik.'
más
visszhang ' $fn1 a fájl nem létezik.'
lenni
#Újsor hozzáadása
visszhang
#Vegyél másik fájlnevet
olvas -o 'Adjon meg egy másik fájlnevet:' fn2
#Ellenőrizze, hogy a fájl létezik-e vagy sem, használja a 'teszt' parancsot
ha teszt -f $fn2 ; akkor
visszhang ' $fn2 A fájl létezik.'
#Ellenőrizze, hogy a fájl üres-e vagy sem, használja a 'teszt' parancsot
ha teszt -Val vel $fn2 ; akkor
visszhang ' $fn2 a fájl üres.'
más
visszhang ' $fn2 a fájl nem üres.'
lenni
más
visszhang ' $fn2 a fájl nem létezik.'
lenni
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után, a „test.txt” és a „testing.txt” fájlnévként. A kimenet szerint mindkét fájl létezik az aktuális helyen, és a „testing.txt” fájl üres:
A következő kimenet jelenik meg a szkript végrehajtása után, az „f1.txt” és a „test.txt” fájlnévként. A kimenet szerint az „f1.txt” fájl nem létezik az aktuális helyen, és a „test.txt” fájl nem üres:
Az „If” utasítás használata a címtár meglétének ellenőrzésére
A könyvtár létezését a Bash szkript kétféleképpen tudja ellenőrizni, mint a fájl. Az egyik a „-d” operátor használata „[]” zárójelekkel. Egy másik a „test” parancs és a „-d” operátor használata. Felvesz egy könyvtárnevet, és ellenőrzi a könyvtár létezését az „if” feltétel használatával a „-d” operátorral. Ezután a program egy másik könyvtárnevet vesz fel, és ellenőrzi a fájl létezését az „if” utasítással a „test” paranccsal és a „-d” operátorral.
#!/bin/bash#Vegyél egy könyvtárnevet
olvas -o 'Adjon meg egy könyvtárnevet:' te 1
#Ellenőrizze, hogy a könyvtár létezik-e a `teszt` használata nélkül
ha [ -d $dir1 ]
akkor
visszhang ' $dir1 könyvtár létezik.'
más
visszhang ' $dir1 könyvtár nem létezik.'
lenni
#Újsor hozzáadása
visszhang
#Vegyél másik könyvtárnevet
olvas -o 'Adjon meg egy másik könyvtárnevet:' dir2
#Ellenőrizze, hogy a fájl létezik-e vagy sem, használja a 'teszt' parancsot
ha teszt -d $dir2
akkor
visszhang ' $dir2 könyvtár létezik.'
más
visszhang ' $dir2 könyvtár nem létezik.'
lenni
Kimenet :
A következő kimenet jelenik meg a parancsfájl végrehajtása után a „temp” és a „files” könyvtárnevekkel. A kimenet szerint mindkét könyvtár létezik az aktuális helyen. Ezután az „ls” parancs végrehajtásra kerül a könyvtárak tartalmának ellenőrzéséhez:
A következő kimenet jelenik meg a szkript végrehajtása után a „testing” és „new” könyvtárnevekkel. A kimenet szerint mindkét könyvtár nem létezik az aktuális helyen. Ezután az „ls” parancs kimenete azt mutatja, hogy mindkét könyvtár nem létezik:
Az „Ha” nyilatkozat használata a Regex-szel
A következő szkript bemutatja a bemeneti adatok érvényesítésének módját egy „if” utasítással a reguláris kifejezéssel. Itt két bemeneti értéket vesz a felhasználó, és a „$bookname” és a „$bookprice” változók tárolják. Az „if” feltétel a szkriptben annak ellenőrzésére szolgál, hogy a „$bookname” változó tartalmazza-e az összes alfabetikus karaktert, a „$bookprice” pedig egy számot.
#!/bin/bash#Vegye el a könyv nevét és árát a felhasználótól
visszhang -n 'Írja be a könyv nevét:'
olvas könyvnév
visszhang -n 'Adja meg a könyv árát:'
olvas könyvár
#Ellenőrizze, hogy a könyv neve csak az ábécét tartalmazza
ha ! [ [ ' $könyvnév ' =~ [ A-Za-z ] ] ] ; akkor
visszhang 'A könyv neve érvénytelen.'
más
visszhang 'A könyv neve érvényes.'
lenni
#Ellenőrizze, hogy a könyv ára csak számjegyeket tartalmaz
ha ! [ [ ' $ könyvár ' =~ [ 0 - 9 ] ] ] ; akkor
visszhang 'A könyv ára csak számjegyet tartalmazhat.'
más
visszhang 'A könyv ára érvényes.'
lenni
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után a „Bash Programming” bemeneti értékekkel könyvnévként és 78-mal a könyv áraként:
A következő kimenet jelenik meg a szkript végrehajtása után, 90-es bemeneti értékkel a könyv neveként és „Bash” értékkel a könyv áraként:
Az „eset” nyilatkozat használata
A „case” utasítás az „if-elif-else” utasítás alternatívája, de az „if-elif-else” utasítás összes feladata nem végezhető el a „case” utasítás használatával. A „case” utasítás egyszerű használatát a következő szkript mutatja be. A rendszer egy számértéket vesz a felhasználótól az aktuális hónap értékeként. Ezután a rendszer kinyomtatja a megfelelő hónapot, ha talál egyező értéket a „case” utasításban. Ellenkező esetben az alapértelmezett üzenet kerül kinyomtatásra.
#!/bin/bash#Vegye számba az aktuális hónap értékét
olvas -o 'Írja be a mai hónapot számban:' b_hónap
#Nyomtassa ki a szöveget a hónap nevének kinyomtatása előtt
visszhang -n 'Az aktuális hónap neve'
#A bevitt adatok alapján találja meg és nyomtassa ki a megfelelő hónapnevet
ügy $b_hónap ban ben
1 | 01 ) visszhang 'Január.' ;;
2 | 02 ) visszhang 'Február.' ;;
3 | 03 ) visszhang 'Március.' ;;
4 | 04 ) visszhang 'Április.' ;;
5 | 05 ) visszhang 'Lehet.' ;;
6 | 06 ) visszhang 'Június.' ;;
7 | 07 ) visszhang 'Július.' ;;
8 | 08 ) visszhang 'Augusztus.' ;;
9 | 09 ) visszhang 'Szeptember.' ;;
10 ) visszhang 'Október.' ;;
tizenegy ) visszhang 'November.' ;;
12 ) visszhang 'December.' ;;
* ) visszhang 'nem található.' ;;
esac
Kimenet :
A következő kimenet jelenik meg a 6-os értékű szkript végrehajtása után:
A következő kimenet jelenik meg a 09 értékű szkript végrehajtása után:
A következő kimenet jelenik meg a 14-es értékű szkript végrehajtása után:
Következtetés
A feltételes logika „if” és „case” utasításokat használó különböző felhasználási módjai az oktatóanyag 10 példájában láthatók. Az oktatóanyag elolvasása után az új Bash-felhasználók számára a feltételes logika használatának fogalma a Bashban törlődik.