- “Ja” paziņojuma izmantošana
- Paziņojuma “Ja cits” izmantošana
- Paziņojuma “If-Elif-Else” izmantošana
- Paziņojuma “Ja” izmantošana, lai pārbaudītu tukšu mainīgo
- Paziņojuma “Ja” izmantošana ar loģisko operatoru
- Ligzdoto “Ja” paziņojumu izmantošana
- Paziņojuma “Ja” izmantošana, lai pārbaudītu faila esamību
- Paziņojuma “Ja” izmantošana, lai pārbaudītu direktorija esamību
- Paziņojuma “Ja” izmantošana kopā ar Regex
- Lietas paziņojuma izmantošana
“Ja” paziņojuma izmantošana
Šis piemērs parāda vienkāršu “if” priekšraksta lietošanu Bash. Lai salīdzinātu Bash skaitliskās vērtības, var izmantot sešu veidu salīdzināšanas operatorus. Tie ir “-eq” (vienāds), “-ne” (nav vienāds), “-le” (mazāks par vienāds), “-ge” (lielāks par vienādu), “-lt” (mazāks par) un “ -gt” (lielāks par). “-lt” un “-eq” lietojumi ir parādīti nākamajā skriptā neatkarīgi no tā, vai skaitlis ir mazāks par 99 vai tas nav pārbaudīts, izmantojot operatoru “-lt”. Skaitlis ir pāra vai nepāra, un to pārbauda operators “-eq”.
#!/bin/bash
#Piešķiriet skaitlisku vērtību
( ( numuru = piecdesmit ) )
#Pārbaudiet skaitlisko vērtību, izmantojot priekšrakstu “if”.
ja [ $numurs -lt 99 ]
tad
atbalss 'Numurs ir derīgs.'
būt
#Pārbaudiet, vai skaitlis ir pāra vai nē
ja [ $ ( ( $numurs % 2 ) ) -ekv 0 ]
tad
atbalss 'Cipars ir pāra.'
būt
Izvade :
Pēc iepriekšējā skripta izpildes tiek parādīta šāda izvade:
Paziņojuma “Ja cits” izmantošana
Paziņojuma “if-else” izmantošana ir parādīta nākamajā skriptā. Virknes vērtība tiek ņemta no lietotāja un pārbauda, vai vērtība ir “BLUE” vai nav, izmantojot priekšrakstu “if-else”.
#!/bin/bash
#Paņemiet no lietotāja virknes vērtību
lasīt -lpp 'Ievadiet savu iecienītāko krāsu:' krāsa
#Pārbaudiet virknes vērtību, izmantojot paziņojumu “if-else”.
ja [ ${color^^} == 'BLUE' ]
tad
atbalss 'Labi, ir pieejama zilā krāsa.'
cits
atbalss ' $ krāsa nav pieejams.'
būt
Izvade :
Pēc iepriekšējā skripta izpildes tiek parādīta šāda izvade, ja par ievadi tiek ņemts “sarkans”:
Pēc iepriekšējā skripta izpildes tiek parādīta šāda izvade, ja par ievadi tiek ņemts “zils”:
Paziņojuma “If-Elif-Else” izmantošana
Paziņojuma “if-elif-else” lietošana ir parādīta nākamajā skriptā. No lietotāja tiek ņemts skaitlis un pārbaudīts ar dažādām vērtībām, līdz tiek atrasta atbilstība. Ja tiek atrasta atbilstība, tiek izdrukāts attiecīgais ziņojums. Ja atbilstība netiek atrasta, tiek izdrukāts noklusējuma ziņojums.
#!/bin/bash#Paņemiet no lietotāja ID vērtību
lasīt -lpp 'Ievadiet savu sērijas numuru:' seriāls
#Pārbaudiet ievades vērtību, izmantojot paziņojumu “if-elif-else”.
ja [ $sērija == '4523' ]
tad
atbalss 'Jūs esat izvēlēts A grupā.'
Elifs [ $sērija == '8723' ]
tad
atbalss 'Jūs esat izvēlēts B grupā.'
Elifs [ $sērija == '3412' ]
tad
atbalss 'Jūs esat izvēlēts grupā C.'
cits
atbalss 'Jūs neesat izvēlēts' .
būt
Izvade:
Pēc skripta izpildes ar vērtību 8723 tiek parādīta šāda izvade:
Pēc skripta izpildes ar vērtību 9078 tiek parādīta šāda izvade:
Paziņojuma “Ja” izmantošana, lai pārbaudītu tukšu mainīgo
Nākamajā skriptā ir parādīta metode, kā pārbaudīt, vai mainīgais ir tukšs, neizmantojot priekšrakstu “if”. Lai veiktu šo uzdevumu, priekšrakstā “if” tiek izmantota opcija “-z”.
#!/bin/bash#Paņemiet no lietotāja ID vērtību
lasīt -lpp 'Ievadiet savu sērijas numuru:' seriāls
#Pārbaudiet, vai mainīgais ir tukšs
ja [ ! -Ar $sērija ]
tad
#Pārbaudiet ievades vērtību, izmantojot paziņojumu “if-elif-else”.
ja [ $sērija == '690' ]
tad
atbalss 'Jūs esat izvēlēts komandā-1.'
Elifs [ $sērija == '450' ]
tad
atbalss 'Jūs esat izvēlēts komandā-2.'
cits
atbalss 'Jūs neesat izvēlēts' .
būt
cits
atbalss 'Sērijas numurs nav norādīts.'
būt
Izvade :
Pēc skripta izpildes ar vērtību 690 tiek parādīta šāda izvade:
Ja netiek ņemta ievades vērtība, pēc skripta izpildes tiek parādīta šāda izvade:
“Ja” paziņojuma izmantošana ar loģiskajiem operatoriem
Bash nosacījuma priekšrakstā var izmantot trīs veidu loģiskos operatorus. Tie ir loģiski VAI (||), loģiski UN (&&) un loģiski NOT (!). Koda vērtība tiek ņemta no lietotāja. Ja ievades vērtība nav tukša, vērtība tiek pārbaudīta ar divām koda vērtībām, izmantojot loģisko VAI. Ja vērtība sakrīt ar kādu kodu, tiek izdrukāts attiecīgais ziņojums. Ja atbilstošs kods netiek atrasts, tiek izdrukāts noklusējuma ziņojums.
#!/bin/bash#Paņemiet kursa kodu no lietotāja
lasīt -lpp 'Ievadiet kursa kodu:' kodu
#Pārbaudiet, vai mainīgais ir tukšs
ja [ ! -Ar $kods ]
tad
#Pārbaudiet ievades vērtību, izmantojot paziņojumu “if-elif-else”.
ja [ [ $kods == 'CSE-106' || $kods == 'CSE-108' ] ]
tad
atbalss 'PMP kurss.'
Elifs [ [ $kods == 'BBA-203' || $kods == 'BBA-202' ] ]
tad
atbalss 'BBA kurss.'
cits
atbalss 'Nederīgs kursa kods.'
būt
cits
atbalss 'Netiek dots kursa kods.'
būt
Izvade :
Pēc skripta izpildes ar ievades vērtību “CSE-108” tiek parādīta šāda izvade:
Pēc skripta izpildes ar ievades vērtību “BBA-56” tiek parādīta šāda izvade:
Ligzdoto “Ja” paziņojumu izmantošana
Ja nosacījums “if” tiek izmantots citā “if” nosacījumā, to sauc par ligzdotu “if” priekšrakstu. Ligzdotā “ja” izmantošanas metode ir parādīta nākamajā skriptā. No lietotāja tiek ņemtas divas atzīmju vērtības. Ja ievades vērtības nav tukšas, pirmais “if” nosacījums pārbauda, vai “$theory” vērtība ir lielāka vai vienāda ar 60. Ja pirmais nosacījums “if” atgriež “true”, otrais “if” nosacījums pārbauda, vai “$lab” vērtība ir lielāka vai vienāda ar 50. Ja arī otrais nosacījums “ja” atgriež “true”, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā tiek izdrukāts kļūdas ziņojums.
#!/bin/bash#Paņemiet teorijas atzīmi
lasīt -lpp 'Ievadiet teorijas atzīmi:' teoriju
#Paņemiet laboratorijas atzīmi
lasīt -lpp 'Ievadiet laboratorijas atzīmi:' lab
#Pārbaudiet, vai mainīgie ir tukši
ja [ [ ! -Ar $teorija && ! -Ar $lab ] ]
tad
#Pārbaudiet ievades vērtības, izmantojot ligzdotu “if” priekšrakstu
ja [ $teorija -ge 60 ]
tad
ja [ $lab -ge piecdesmit ]
tad
atbalss 'Jūs esat pagājis.'
cits
atbalss 'Tu esi izgāzies.'
būt
cits
atbalss 'Tu esi izgāzies.'
būt
cits
atbalss 'Teorija vai laboratorijas atzīme ir tukša.'
būt
Izvade :
Ja abas vai viena no ievades vērtībām ir tukšas, tiek parādīta šāda izvade:
Ja 78 tiek pieņemts kā teorijas atzīmes un 45 tiek ņemts par laboratorijas atzīmi, parādās šāda izvade. Šeit otrais nosacījums “ja” atgriež “false”:
Ja 67 tiek pieņemts kā teorijas atzīmes un 56 tiek ņemts par laboratorijas atzīmi, parādās šāda izvade. Šeit abi “ja” nosacījumi atgriež “patiess”:
Ja 50 tiek pieņemts kā teorijas atzīmes un 80 tiek ņemtas par laboratorijas atzīmēm, tiek parādīta šāda izvade. Šeit pirmais “ja” nosacījums atgriež “false”:
Paziņojuma “Ja” izmantošana, lai pārbaudītu faila esamību
Faila esamību var pārbaudīt ar bash skriptu divos veidos. Viens no tiem izmanto operatoru “-f” ar “[]” iekavām. Vēl viens izmanto komandu “test” un operatoru “-f”. Tiek ņemts faila nosaukums un pārbaudīta faila esamība, izmantojot nosacījumu “if” ar operatoru “-f”. Pēc tam tiek ņemts cits faila nosaukums un pārbaudīta faila esamība, izmantojot “if” priekšrakstu ar komandu “test” un operatoru “-f”.
#!/bin/bash#Paņemiet faila nosaukumu
lasīt -lpp 'Ievadiet faila nosaukumu:' fn1
#Pārbaudiet, vai fails pastāv, neizmantojot testu
ja [ -f $fn1 ]
tad
atbalss ' $fn1 fails pastāv.'
cits
atbalss ' $fn1 fails neeksistē.'
būt
#Pievienot jaunu rindiņu
atbalss
#Paņemiet citu faila nosaukumu
lasīt -lpp 'Ievadiet citu faila nosaukumu:' fn2
#Pārbaudiet, vai fails pastāv vai ne, izmantojot testu
ja pārbaude -f $fn2 ; tad
atbalss ' $fn2 fails pastāv.'
#Pārbaudiet, vai fails ir tukšs vai neizmanto, izmantojot testu
ja pārbaude -Ar $fn2 ; tad
atbalss ' $fn2 fails ir tukšs.'
cits
atbalss ' $fn2 fails nav tukšs.'
būt
cits
atbalss ' $fn2 fails neeksistē.'
būt
Izvade :
Pēc skripta izpildes tiek parādīta šāda izvade, kā faila nosaukumus izmantojot “test.txt” un “testing.txt”. Saskaņā ar izvadi abi faili pastāv pašreizējā atrašanās vietā, un fails “testing.txt” ir tukšs:
Pēc skripta izpildes tiek parādīta šāda izvade, kā faila nosaukumus izmantojot “f1.txt” un “test.txt”. Saskaņā ar izvadi fails “f1.txt” pašreizējā atrašanās vietā nepastāv, un fails “test.txt” nav tukšs:
Paziņojuma “Ja” izmantošana, lai pārbaudītu direktorija esamību
Direktorija esamību var pārbaudīt ar Bash skriptu divos veidos, piemēram, failā. Viens no tiem izmanto operatoru “-d” ar “[]” iekavām. Vēl viens izmanto komandu “test” un operatoru “-d”. Tiek ņemts direktorija nosaukums un pārbaudīta direktorija esamība, izmantojot nosacījumu “if” ar operatoru “-d”. Pēc tam tiek ņemts cits direktorija nosaukums un pārbaudīta faila esamība, izmantojot “if” priekšrakstu ar komandu “test” un operatoru “-d”.
#!/bin/bash#Paņemiet direktorija nosaukumu
lasīt -lpp 'Ievadiet direktorija nosaukumu:' tu 1
#Pārbaudiet, vai direktorijs pastāv, neizmantojot testu
ja [ -d $rež.1 ]
tad
atbalss ' $rež.1 direktorijs pastāv.'
cits
atbalss ' $rež.1 direktorija nepastāv.'
būt
#Pievienot jaunu rindiņu
atbalss
#Paņemiet citu direktorija nosaukumu
lasīt -lpp 'Ievadiet citu direktorija nosaukumu:' rež2
#Pārbaudiet, vai fails pastāv vai ne, izmantojot testu
ja pārbaude -d $rež.2
tad
atbalss ' $rež.2 direktorijs pastāv.'
cits
atbalss ' $rež.2 direktorija nepastāv.'
būt
Izvade :
Pēc skripta izpildes ar direktoriju nosaukumiem “temp” un “files” tiek parādīta šāda izvade. Saskaņā ar izvadi abi direktoriji pastāv pašreizējā atrašanās vietā. Pēc tam tiek izpildīta komanda “ls”, lai pārbaudītu direktoriju saturu:
Pēc skripta izpildes tiek parādīta šāda izvade ar direktoriju nosaukumiem “testēšana” un “jauns”. Saskaņā ar izvadi abi direktoriji pašreizējā vietā nepastāv. Pēc tam komandas “ls” izvade parāda, ka abi direktoriji nepastāv:
Paziņojuma “Ja” izmantošana kopā ar Regex
Šis skripts parāda ievades datu validēšanas metodi, izmantojot “if” priekšrakstu ar regulāro izteiksmi. Šeit no lietotāja tiek ņemtas divas ievades vērtības, kas tiek saglabātas mainīgajos “$bookname” un “$bookprice”. Nosacījums “if” skriptā tiek izmantots, lai pārbaudītu, vai mainīgajā “$bookname” ir visas alfabēta rakstzīmes un vai “$bookprice” ir skaitlis.
#!/bin/bash#Paņemiet no lietotāja grāmatas nosaukumu un cenu
atbalss -n 'Ievadiet grāmatas nosaukumu:'
lasīt grāmatas nosaukums
atbalss -n 'Ievadiet grāmatas cenu:'
lasīt grāmatu cena
#Pārbaudiet, vai grāmatas nosaukumā ir tikai alfabēts
ja ! [ [ ' $grāmatas nosaukums ' =~ [ A-Za-z ] ] ] ; tad
atbalss 'Grāmatas nosaukums nav derīgs.'
cits
atbalss 'Grāmatas nosaukums ir derīgs.'
būt
#Pārbaudiet, vai grāmatas cenā ir tikai cipars
ja ! [ [ ' $grāmatas cena ' =~ [ 0 - 9 ] ] ] ; tad
atbalss 'Grāmatas cenā var būt tikai cipars.'
cits
atbalss 'Grāmatas cena ir spēkā.'
būt
Izvade :
Pēc skripta izpildes tiek parādīta šāda izvade ar ievades vērtībām “Bash Programming” kā grāmatas nosaukumu un 78 kā grāmatas cenu:
Pēc skripta izpildes tiek parādīta šāda izvade ar ievades vērtībām 90 kā grāmatas nosaukumu un “Bash” kā grāmatas cenu:
Lietas paziņojuma izmantošana
Paziņojums “case” ir alternatīva paziņojumam “if-elif-else”, taču visus paziņojuma “if-elif-else” uzdevumus nevar veikt, izmantojot paziņojumu “case”. Vienkāršā “case” paziņojuma izmantošana ir parādīta nākamajā skriptā. Ciparu vērtība tiek ņemta no lietotāja kā pašreizējā mēneša vērtība. Pēc tam tiek izdrukāts attiecīgais mēnesis, ja paziņojumā “case” tiek atrasta atbilstoša vērtība. Pretējā gadījumā tiek izdrukāts noklusējuma ziņojums.
#!/bin/bash#Ņemiet pašreizējā mēneša vērtību skaitļos
lasīt -lpp 'Ievadiet šodienas mēnesi ar skaitli:' b_mēnesis
#Izdrukājiet tekstu pirms mēneša nosaukuma drukāšanas
atbalss -n 'Pašreizējā mēneša nosaukums ir'
#Noskaidrojiet un izdrukājiet atbilstošo mēneša nosaukumu, pamatojoties uz ievadīto informāciju
lietu $b_mēnesis iekšā
1 | 01 ) atbalss 'Janvāris.' ;;
2 | 02 ) atbalss 'Februāris.' ;;
3 | 03 ) atbalss 'Marts.' ;;
4 | 04 ) atbalss 'Aprīlis.' ;;
5 | 05 ) atbalss 'Maijs.' ;;
6 | 06 ) atbalss 'Jūnijs.' ;;
7 | 07 ) atbalss 'Jūlijs.' ;;
8 | 08 ) atbalss 'Augusts.' ;;
9 | 09 ) atbalss — Septembris. ;;
10 ) atbalss 'Oktobris.' ;;
vienpadsmit ) atbalss 'Novembris.' ;;
12 ) atbalss 'Decembris.' ;;
* ) atbalss 'nav atrasts.' ;;
esac
Izvade :
Pēc skripta izpildes ar vērtību 6 tiek parādīta šāda izvade:
Pēc skripta izpildes ar vērtību 09 tiek parādīta šāda izvade:
Pēc skripta izpildes ar vērtību 14 tiek parādīta šāda izvade:
Secinājums
Šīs apmācības 10 piemēros ir parādīti dažādi nosacījuma loģikas lietojumi, izmantojot priekšrakstus “ja” un “case”. Nosacītās loģikas izmantošanas jēdziens programmā Bash tiks dzēsts jaunajiem Bash lietotājiem pēc šīs apmācības izlasīšanas.