- „Jei“ pareiškimo naudojimas
- Pareiškimo „Jei kitu atveju“ naudojimas
- „If-Elif-Else“ pareiškimo naudojimas
- „Jei“ teiginio naudojimas tuščiam kintamajam patikrinti
- „Jei“ teiginio naudojimas su loginiu operatoriumi
- Įdėtųjų „Jei“ teiginių naudojimas
- Pareiškimo „Jei“ naudojimas failo egzistavimui patikrinti
- „Jei“ teiginio naudojimas katalogo buvimui patikrinti
- Pareiškimo „Jei“ naudojimas su Regex
- „Atvejo“ pareiškimo naudojimas
„Jei“ pareiškimo naudojimas
Šiame pavyzdyje parodytas paprastas sakinio „if“ naudojimas Bash. Norint palyginti Bash skaitines reikšmes, galima naudoti šešių tipų palyginimo operatorius. Tai yra '-eq' (lygus), '-ne' (nelygus), '-le' (mažiau nei lygus), '-ge' (didesnis nei lygus), '-lt' (mažiau nei) ir ' -gt“ (didesnis nei). „-lt“ ir „-eq“ naudojimas rodomas toliau pateiktame scenarijuje, nesvarbu, ar skaičius yra mažesnis nei 99, ar nebuvo patikrintas naudojant „-lt“ operatorių. Skaičius yra lyginis arba nelyginis ir jį tikrina „-eq“ operatorius.
#!/bin/bash
#Priskirkite skaitinę reikšmę
( ( numerį = penkiasdešimt ) )
#Patikrinkite skaitinę reikšmę naudodami teiginį „if“.
jeigu [ $numeris -lt 99 ]
tada
aidas 'Numeris galioja.'
būti
#Patikrinkite, ar skaičius lyginis, ar ne
jeigu [ $ ( ( $numeris % 2 ) ) -ekv 0 ]
tada
aidas „Skaičius lyginis“.
būti
Išvestis :
Įvykdžius ankstesnį scenarijų pasirodo ši išvestis:
Pareiškimo „Jei kitu atveju“ naudojimas
Teiginio „if-else“ naudojimas parodytas šiame scenarijuje. Eilutės reikšmė paimama iš vartotojo ir patikrinama, ar reikšmė yra „BLUE“, ar ne, naudojant „if-else“ teiginį.
#!/bin/bash
#Paimkite iš vartotojo eilutės reikšmę
skaityti -p 'Įveskite savo mėgstamą spalvą:' spalva
#Patikrinkite eilutės reikšmę naudodami teiginį „if-else“.
jeigu [ ${color^^} == 'BLUE' ]
tada
aidas 'Gerai, yra mėlyna spalva.'
Kitas
aidas “ $ spalva negalimas.'
būti
Išvestis :
Ši išvestis pasirodo po ankstesnio scenarijaus vykdymo, jei kaip įvestis yra „raudona“:
Ši išvestis pasirodo po ankstesnio scenarijaus vykdymo, jei kaip įvestis yra „mėlyna“:
„If-Elif-Else“ pareiškimo naudojimas
Teiginio „if-elif-else“ naudojimas parodytas toliau pateiktame scenarijuje. Iš vartotojo paimamas skaičius ir tikrinamas su skirtingomis reikšmėmis, kol randama atitiktis. Jei randama atitiktis, išspausdinamas atitinkamas pranešimas. Jei atitikmens nerasta, išspausdinamas numatytasis pranešimas.
#!/bin/bash#Paimkite ID reikšmę iš vartotojo
skaityti -p 'Įveskite savo serijos numerį:' serijinis
#Patikrinkite įvesties reikšmę naudodami teiginį „if-elif-else“.
jeigu [ $serialas == '4523' ]
tada
aidas „Esate atrinktas į A grupę“.
Elif [ $serialas == '8723' ]
tada
aidas „Esate atrinktas į B grupę“.
Elif [ $serialas == '3412' ]
tada
aidas „Esate atrinktas į C grupę“.
Kitas
aidas 'Jūs nesate pasirinktas' .
būti
Išvestis:
Įvykdžius scenarijų, kurio reikšmė yra 8723, pasirodo ši išvestis:
Įvykdžius scenarijų, kurio reikšmė yra 9078, pasirodo ši išvestis:
„Jei“ teiginio naudojimas tuščiam kintamajam patikrinti
Patikrinimo, ar kintamasis tuščias, nenaudojant „if“ teiginio, metodas parodytas kitame scenarijuje. Šiai užduočiai atlikti teiginyje „if“ naudojama parinktis „-z“.
#!/bin/bash#Paimkite ID reikšmę iš vartotojo
skaityti -p 'Įveskite savo serijos numerį:' serijinis
#Patikrinkite, ar kintamasis tuščias, ar ne
jeigu [ ! -Su $serialas ]
tada
#Patikrinkite įvesties reikšmę naudodami teiginį „if-elif-else“.
jeigu [ $serialas == '690' ]
tada
aidas „Esate atrinktas į komandą-1“.
Elif [ $serialas == '450' ]
tada
aidas „Esate atrinktas į 2 komandą“.
Kitas
aidas 'Jūs nesate pasirinktas' .
būti
Kitas
aidas 'Serijos numeris nenurodytas.'
būti
Išvestis :
Įvykdžius scenarijų, kurio vertė yra 690, pasirodo ši išvestis:
Jei nepaimama jokia įvesties reikšmė, paleidus scenarijų pasirodo ši išvestis:
„Jei“ teiginio naudojimas su loginiais operatoriais
Bash sąlyginiame sakinyje galima naudoti trijų tipų loginius operatorius. Tai yra loginis ARBA (||), loginis IR (&&) ir loginis NE (!). Kodo reikšmė paimama iš vartotojo. Jei įvesties reikšmė netuščia, reikšmė tikrinama dviem kodo reikšmėmis naudojant loginį ARBA. Jei reikšmė sutampa su bet kuriuo kodu, išspausdinamas atitinkamas pranešimas. Jei nerandamas atitinkantis kodas, išspausdinamas numatytasis pranešimas.
#!/bin/bash#Paimkite kurso kodą iš vartotojo
skaityti -p 'Įveskite kurso kodą:' kodas
#Patikrinkite, ar kintamasis tuščias, ar ne
jeigu [ ! -Su $kodas ]
tada
#Patikrinkite įvesties reikšmę naudodami teiginį „if-elif-else“.
jeigu [ [ $kodas == „CSE-106“ || $kodas == „CSE-108“ ] ]
tada
aidas „TPP kursas“.
Elif [ [ $kodas == „BBA-203“ || $kodas == „BBA-202“ ] ]
tada
aidas 'BBA kursas'.
Kitas
aidas 'Neteisingas kurso kodas.'
būti
Kitas
aidas 'Joks kurso kodas nesuteikiamas.'
būti
Išvestis :
Įvykdžius scenarijų su įvesties reikšme „CSE-108“, pasirodo ši išvestis:
Įvykdžius scenarijų su įvesties reikšme „BBA-56“, pasirodo ši išvestis:
Įdėtųjų „Jei“ teiginių naudojimas
Kai sąlyga „if“ naudojama kitoje sąlygoje „if“, ji vadinama įdėtuoju „if“ teiginiu. Įdėto „jei“ naudojimo būdas parodytas kitame scenarijuje. Iš vartotojo paimamos dvi žymų reikšmės. Jei įvesties reikšmės nėra tuščios, pirmoji sąlyga „if“ patikrina, ar „$theory“ reikšmė yra didesnė arba lygi 60, ar ne. Jei pirmoji sąlyga „if“ grąžina „true“, antroji sąlyga „if“ patikrina, ar „$lab“ reikšmė yra didesnė arba lygi 50, ar ne. Jei antroji sąlyga „jei“ taip pat grąžina „true“, išspausdinamas sėkmės pranešimas. Priešingu atveju išspausdinamas pranešimas apie gedimą.
#!/bin/bash#Paimkite teorijos pažymį
skaityti -p 'Įveskite teorijos ženklą:' teorija
#Paimkite laboratorinį ženklą
skaityti -p 'Įveskite laboratorijos ženklą:' lab
#Patikrinkite, ar kintamieji tušti, ar ne
jeigu [ [ ! -Su $teorija && ! -Su $lab ] ]
tada
#Patikrinkite įvesties reikšmes naudodami įdėtą „if“ teiginį
jeigu [ $teorija -ge 60 ]
tada
jeigu [ $lab -ge penkiasdešimt ]
tada
aidas — Jūs praėjote.
Kitas
aidas — Tau nepavyko.
būti
Kitas
aidas — Tau nepavyko.
būti
Kitas
aidas „Teorija arba laboratorijos ženklas tuščias“.
būti
Išvestis :
Jei abi arba viena iš įvesties reikšmių tuščios, rodoma ši išvestis:
Ši išvestis rodoma, jei 78 laikomi teorijos pažymiais, o 45 - laboratoriniais pažymiais. Čia antroji sąlyga „jei“ grąžina „false“:
Jei 67 laikomas teorijos pažymiu, o 56 - laboratoriniu pažymiu, rodomas toks rezultatas. Čia abi „jei“ sąlygos grąžina „teisinga“:
Ši išvestis rodoma, jei 50 laikomi teorijos pažymiais, o 80 - laboratoriniais pažymiais. Čia pirmoji sąlyga „jei“ grąžina „false“:
Pareiškimo „Jei“ naudojimas failo egzistavimui patikrinti
Failo egzistavimą bash scenarijus galima patikrinti dviem būdais. Vienas iš jų naudoja „-f“ operatorių su „[]“ skliaustais. Kitas būdas naudoti komandą „test“ ir „-f“ operatorių. Paimamas failo pavadinimas ir patikrinamas failo egzistavimas naudojant sąlygą „if“ su operatoriumi „-f“. Tada paimamas kitas failo pavadinimas ir patikrinama, ar failas yra, naudojant teiginį „if“ su komanda „test“ ir operatoriumi „-f“.
#!/bin/bash#Paimkite failo pavadinimą
skaityti -p 'Įveskite failo pavadinimą:' fn1
#Patikrinkite, ar failas egzistuoja, ar ne, nenaudodami „testo“.
jeigu [ -f $fn1 ]
tada
aidas “ $fn1 failas egzistuoja“.
Kitas
aidas “ $fn1 failas neegzistuoja.'
būti
#Pridėti naują eilutę
aidas
#Paimkite kitą failo pavadinimą
skaityti -p 'Įveskite kitą failo pavadinimą:' fn2
#Patikrinkite, ar failas egzistuoja, ar ne, naudodami „testą“.
jeigu bandymas -f $fn2 ; tada
aidas “ $fn2 failas egzistuoja“.
#Patikrinkite, ar failas tuščias, ar ne, naudodami „testą“.
jeigu bandymas -Su $fn2 ; tada
aidas “ $fn2 failas tuščias“.
Kitas
aidas “ $fn2 failas nėra tuščias“.
būti
Kitas
aidas “ $fn2 failas neegzistuoja.'
būti
Išvestis :
Vykdžius scenarijų, kaip failų pavadinimus pasirenkant „test.txt“ ir „testing.txt“, pasirodo tokia išvestis. Pagal išvestį abu failai yra dabartinėje vietoje, o failas „testing.txt“ yra tuščias:
Ši išvestis pasirodo po scenarijaus vykdymo, kaip failų pavadinimus paėmus „f1.txt“ ir „test.txt“. Pagal išvestį failo „f1.txt“ dabartinėje vietoje nėra, o „test.txt“ failas nėra tuščias:
„Jei“ teiginio naudojimas katalogo buvimui patikrinti
Katalogo egzistavimą galima patikrinti naudojant „Bash“ scenarijų dviem būdais, pavyzdžiui, naudojant failą. Vienas iš jų naudoja „-d“ operatorių su „[]“ skliaustais. Kitas būdas naudoti komandą „test“ ir „-d“ operatorių. Paimamas katalogo pavadinimas ir patikrinamas katalogo egzistavimas naudojant sąlygą „if“ su operatoriumi „-d“. Tada paimamas kitas katalogo pavadinimas ir patikrinamas failo egzistavimas naudojant „if“ teiginį su komanda „test“ ir operatoriumi „-d“.
#!/bin/bash# Paimkite katalogo pavadinimą
skaityti -p 'Įveskite katalogo pavadinimą:' tu 1
#Patikrinkite, ar katalogas egzistuoja, ar ne, nenaudodami „testo“.
jeigu [ -d $ dir1 ]
tada
aidas “ $ dir1 katalogas egzistuoja“.
Kitas
aidas “ $ dir1 katalogo nėra“.
būti
#Pridėti naują eilutę
aidas
#Paimkite kitą katalogo pavadinimą
skaityti -p 'Įveskite kitą katalogo pavadinimą:' rež.2
#Patikrinkite, ar failas egzistuoja, ar ne, naudodami „testą“.
jeigu bandymas -d $ dir2
tada
aidas “ $ dir2 katalogas egzistuoja“.
Kitas
aidas “ $ dir2 katalogo nėra“.
būti
Išvestis :
Ši išvestis pasirodo po to, kai vykdomas scenarijus su „temp“ ir „files“ katalogų pavadinimais. Pagal išvestį abu katalogai egzistuoja dabartinėje vietoje. Tada vykdoma komanda „ls“, kad būtų patikrintas katalogų turinys:
Ši išvestis pasirodo po to, kai vykdomas scenarijus su 'testavimo' ir 'naujasis' katalogų pavadinimais. Pagal išvestį abiejų katalogų dabartinėje vietoje nėra. Tada komandos „ls“ išvestis rodo, kad abiejų katalogų nėra:
Pareiškimo „Jei“ naudojimas su Regex
Šis scenarijus rodo įvesties duomenų patvirtinimo metodą naudojant „if“ teiginį su reguliariąja išraiška. Čia iš vartotojo paimamos dvi įvesties reikšmės ir saugomos kintamuosiuose „$bookname“ ir „$bookprice“. Sąlyga „if“ naudojama scenarijuje siekiant patikrinti, ar kintamajame „$bookname“ yra visi abėcėlės simboliai, o „$bookprice“ yra skaičius.
#!/bin/bash#Paimkite iš vartotojo knygos pavadinimą ir kainą
aidas -n 'Įveskite knygos pavadinimą:'
skaityti knygos pavadinimas
aidas -n 'Įveskite knygos kainą:'
skaityti knygos kaina
#Patikrinkite, kad knygos pavadinime yra tik abėcėlė
jeigu ! [ [ “ $bookname “ =~ [ A-Za-z ] ] ] ; tada
aidas „Knygos pavadinimas neteisingas“.
Kitas
aidas „Knygos pavadinimas galioja“.
būti
#Patikrinkite, kad knygos kainoje yra tik skaitmenys
jeigu ! [ [ “ $ knygos kaina “ =~ [ 0 - 9 ] ] ] ; tada
aidas 'Knygos kainoje gali būti tik skaitmenys.'
Kitas
aidas 'Knygos kaina galioja.'
būti
Išvestis :
Vykdant scenarijų pasirodo tokia išvestis, kurios įvesties reikšmės yra „Bash Programming“ kaip knygos pavadinimas ir 78 kaip knygos kaina:
Vykdžius scenarijų, kurio įvesties reikšmės yra 90 kaip knygos pavadinimas ir „Bash“ kaip knygos kaina, pasirodo ši išvestis:
„Atvejo“ pareiškimo naudojimas
Teiginys „atvejis“ yra teiginio „if-elif-else“ alternatyva, tačiau visų teiginio „if-elif-else“ užduočių negalima atlikti naudojant teiginį „case“. Paprastas „atvejo“ teiginio naudojimas parodytas šiame scenarijuje. Skaitinė reikšmė iš vartotojo paimama kaip einamojo mėnesio reikšmė. Tada atitinkamas mėnuo išspausdinamas, jei „atvejo“ teiginyje randama atitinkama reikšmė. Kitu atveju išspausdinamas numatytasis pranešimas.
#!/bin/bash# Paimkite einamojo mėnesio reikšmę skaičiumi
skaityti -p 'Įveskite šiandienos mėnesį skaičiumi:' b_mėn
#Atspausdinkite tekstą prieš spausdindami mėnesio pavadinimą
aidas -n 'Dabartinis mėnesio pavadinimas yra'
#Sužinokite ir atsispausdinkite atitinkantį mėnesio pavadinimą pagal įvestį
atvejis $b_mėn in
1 | 01 ) aidas — Sausio mėn. ;;
2 | 02 ) aidas 'vasaris'. ;;
3 | 03 ) aidas 'Kovas.' ;;
4 | 04 ) aidas 'Balandis.' ;;
5 | 05 ) aidas 'Gegužė.' ;;
6 | 06 ) aidas — Birželis. ;;
7 | 07 ) aidas — Liepa. ;;
8 | 08 ) aidas 'Rugpjūtis.' ;;
9 | 09 ) aidas — Rugsėjo mėn. ;;
10 ) aidas 'Spalio mėn.' ;;
vienuolika ) aidas — Lapkričio mėn. ;;
12 ) aidas 'Gruodis'. ;;
* ) aidas 'nerastas.' ;;
esac
Išvestis :
Įvykdžius scenarijų, kurio reikšmė yra 6, pasirodo ši išvestis:
Įvykdžius scenarijų, kurio reikšmė yra 09, pasirodo ši išvestis:
Įvykdžius scenarijų, kurio reikšmė yra 14, pasirodo ši išvestis:
Išvada
Įvairūs sąlyginės logikos naudojimo būdai, naudojant „if“ ir „case“ teiginius, parodyti 10 šios mokymo programos pavyzdžių. Sąlyginės logikos naudojimo Bash sąvoka bus išvalyta naujiems Bash vartotojams perskaičius šią mokymo programą.