Kā apgūt nosacīto loģiku programmā Bash

Ka Apgut Nosacito Logiku Programma Bash



Nosacītās loģikas izmantošana ir ļoti būtiska jebkuras programmēšanas valodas sastāvdaļa. Nosacīto loģiku var ieviest Bash dažādos veidos, lai atrisinātu programmēšanas problēmas. Šajā apmācībā ir parādītas nosacītās loģikas izmantošanas metodes Bash, izmantojot dažādu veidu “if” un “case” paziņojumus, lai salīdzinātu virknes un skaitliskās vērtības, pārbaudītu mainīgo saturu, pārbaudītu faila vai direktorija esamību utt. .

Satura saraksts:

  1. “Ja” paziņojuma izmantošana
  2. Paziņojuma “Ja cits” izmantošana
  3. Paziņojuma “If-Elif-Else” izmantošana
  4. Paziņojuma “Ja” izmantošana, lai pārbaudītu tukšu mainīgo
  5. Paziņojuma “Ja” izmantošana ar loģisko operatoru
  6. Ligzdoto “Ja” paziņojumu izmantošana
  7. Paziņojuma “Ja” izmantošana, lai pārbaudītu faila esamību
  8. Paziņojuma “Ja” izmantošana, lai pārbaudītu direktorija esamību
  9. Paziņojuma “Ja” izmantošana kopā ar Regex
  10. 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:



  p1





Iet uz augšu

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”:

  p2-1

Pēc iepriekšējā skripta izpildes tiek parādīta šāda izvade, ja par ievadi tiek ņemts “zils”:

  p2-2

Iet uz augšu

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:

  p3-1

Pēc skripta izpildes ar vērtību 9078 tiek parādīta šāda izvade:

  p3-2

Iet uz augšu

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:

  p4-1

Ja netiek ņemta ievades vērtība, pēc skripta izpildes tiek parādīta šāda izvade:

  p4-2

Iet uz augšu

“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:

  p5-1

Pēc skripta izpildes ar ievades vērtību “BBA-56” tiek parādīta šāda izvade:

  p5-2

Iet uz augšu

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:

  p6-1

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”:

  p6-2

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”:

  p6-3

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”:

  p6-4

Iet uz augšu

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:

  p7-1

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:

  p7-2

Iet uz augšu

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:

  p8-1

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:

  p8-2

Iet uz augšu

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:

  p9-1

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:

  p9-2

Iet uz augšu

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:

  p10-1

Pēc skripta izpildes ar vērtību 09 tiek parādīta šāda izvade:


  p10-2

Pēc skripta izpildes ar vērtību 14 tiek parādīta šāda izvade:

  p10-3

Iet uz augšu

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.