Како савладати условну логику у Басху

Kako Savladati Uslovnu Logiku U Bashu



Употреба условне логике је веома важан део сваког програмског језика. Условна логика се може имплементирати у Басх на различите начине да би се решили проблеми програмирања. Методе коришћења условне логике у Басху кроз различите типове „иф“ и „цасе“ наредби за упоређивање стрингова и нумеричких вредности, проверу садржаја променљиве, проверу постојања датотеке или директоријума, итд. су приказани у овом водичу .

Листа садржаја:

  1. Употреба изјаве „Ако“.
  2. Употреба изјаве „Иф-Елсе“.
  3. Употреба изјаве „Иф-Елиф-Елсе“.
  4. Употреба изјаве „Иф“ за проверу празне променљиве
  5. Употреба изјаве „Иф“ са логичким оператором
  6. Коришћење угнежђених „Ако“ изјава
  7. Употреба изјаве „Иф“ за проверу постојања датотеке
  8. Употреба изјаве „Иф“ за проверу постојања именика
  9. Употреба изјаве „Иф“ са Регек-ом
  10. Употреба изјаве „Случај“.

Употреба изјаве „Ако“.

Овај пример показује једноставну употребу наредбе „иф“ у Басху. Шест типова оператора поређења може се користити за поређење нумеричких вредности у Басх-у. То су „-ек“ (једнако), „-не“ (није једнако), „-ле“ (мање од једнако), „-ге“ (веће од једнако), „-лт“ (мање од) и „ -гт” (веће од). Употреба „-лт“ и „-ек“ приказана је у следећој скрипти без обзира да ли је број мањи од 99 или није проверен помоћу оператора „-лт“. Број је паран или непаран и проверава се помоћу “-ек” оператора.







#!/бин/басх

#Доделите нумеричку вредност

( ( број = педесет ) )

#Проверите нумеричку вредност користећи наредбу 'иф'

ако [ $број -лт 99 ]

онда

одјек „Број је важећи.“

бити

#Провери да ли је број паран или не

ако [ $ ( ( $број % 2 ) ) -ек 0 ]

онда

одјек 'Број је паран.'

бити

Излаз :



Следећи излаз се појављује након извршавања претходне скрипте:



  п1





Иди на врх

Употреба изјаве „Иф-Елсе“.

Употреба изјаве „иф-елсе“ приказана је у следећој скрипти. Вредност низа се узима од корисника и проверава да ли је вредност „ПЛАВА“ или не користећи наредбу „иф-елсе“.



#!/бин/басх

#Узмите вредност стринга од корисника

читати -п „Унесите своју омиљену боју:“ боја

#Проверите вредност стринга користећи наредбу 'иф-елсе'

ако [ ${цолор^^} == 'ПЛАВИ' ]

онда

одјек „Добро, доступна је плава боја.“

друго

одјек ' $цолор није доступан.'

бити

Излаз :

Следећи излаз се појављује након извршавања претходне скрипте ако се „црвено“ узме као улаз:

  п2-1

Следећи излаз се појављује након извршавања претходне скрипте ако се „плаво“ узме као улаз:

  п2-2

Иди на врх

Употреба изјаве „Иф-Елиф-Елсе“.

Употреба изјаве „иф-елиф-елсе“ приказана је у следећој скрипти. Број се узима од корисника и проверава се са различитим вредностима док се не пронађе било које подударање. Ако се пронађе било које подударање, штампа се одговарајућа порука. Ако није пронађено подударање, штампа се подразумевана порука.

#!/бин/басх

#Узмите ИД вредност од корисника

читати -п „Унесите свој серијски број:“ серијски

#Проверите улазну вредност помоћу наредбе 'иф-елиф-елсе'

ако [ $сериал == '4523' ]

онда

одјек 'Ви сте изабрани у групу А.'

Елиф [ $сериал == '8723' ]

онда

одјек „Ви сте изабрани у групу Б.“

Елиф [ $сериал == '3412' ]

онда

одјек „Ви сте изабрани у групу Ц.“

друго

одјек 'Ниси изабран' .

бити

Излаз:

Следећи излаз се појављује након извршавања скрипте са вредношћу 8723:

  п3-1

Следећи излаз се појављује након извршавања скрипте са вредношћу 9078:

  п3-2

Иди на врх

Употреба изјаве „Иф“ за проверу празне променљиве

Метод провере да ли је променљива празна без употребе наредбе „иф“ приказан је у следећој скрипти. Опција „-з“ се користи у изјави „иф“ за обављање овог задатка.

#!/бин/басх

#Узмите ИД вредност од корисника

читати -п „Унесите свој серијски број:“ серијски

#Проверите да ли је променљива празна или не

ако [ ! -Са $сериал ]

онда

#Проверите улазну вредност помоћу наредбе 'иф-елиф-елсе'

ако [ $сериал == '690' ]

онда

одјек „Ви сте изабрани у тим-1.“

Елиф [ $сериал == '450' ]

онда

одјек „Ви сте изабрани у тим-2.“

друго

одјек 'Ниси изабран' .

бити

друго

одјек „Није наведен серијски број.“

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте са вредношћу 690:

  п4-1

Следећи излаз се појављује након извршавања скрипте ако се не узме улазна вредност:

  п4-2

Иди на врх

Употреба изјаве „Иф“ са логичким операторима

У Басх условном исказу могу се користити три типа логичких оператора. То су логичко ИЛИ (||), логичко И (&&) и логичко НЕ (!). Вредност кода се узима од корисника. Ако је улазна вредност непразна, вредност се проверава са две вредности кода помоћу логичког ИЛИ. Ако се вредност поклапа са било којим кодом, исписује се одговарајућа порука. Ако се не пронађе одговарајући код, штампа се подразумевана порука.

#!/бин/басх

#Преузмите шифру курса од корисника

читати -п „Унесите код курса:“ код

#Проверите да ли је променљива празна или не

ако [ ! -Са $цоде ]

онда

#Проверите улазну вредност помоћу наредбе 'иф-елиф-елсе'

ако [ [ $цоде == 'ЦСЕ-106' || $цоде == 'ЦСЕ-108' ] ]

онда

одјек 'ЦСЕ курс.'

Елиф [ [ $цоде == 'ББА-203' || $цоде == 'ББА-202' ] ]

онда

одјек 'ББА курс.'

друго

одјек „Неважећи код курса.“

бити

друго

одјек „Није дата шифра курса.“

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте са улазном вредношћу „ЦСЕ-108“:

  п5-1

Следећи излаз се појављује након извршавања скрипте са улазном вредношћу „ББА-56“:

  п5-2

Иди на врх

Коришћење угнежђених „Ако“ изјава

Када се услов „ако“ користи унутар другог „иф“ услова, назива се угнежђена „иф“ изјава. Метод коришћења угнежђеног „иф“ је приказан у следећој скрипти. Две вредности се узимају од корисника. Ако улазне вредности нису празне, први услов „ако“ проверава да ли је вредност „$тхеори“ већа или једнака 60 или не. Ако први услов „иф“ врати „тачно“, други услов „ако“ проверава да ли је вредност „$лаб“ већа или једнака 50 или не. Ако други услов „ако“ такође врати „труе“, штампа се порука о успеху. У супротном, штампа се порука о грешци.

#!/бин/басх

#Узми теорију

читати -п „Унесите теорију:“ теорија

#Узми лабораторијску ознаку

читати -п „Унесите лабораторијску ознаку:“ лаб

#Проверите да ли су променљиве празне или не

ако [ [ ! -Са $тхеори && ! -Са $лаб ] ]

онда

#Проверите улазне вредности помоћу угнежђене 'иф' изјаве

ако [ $тхеори -ге 60 ]

онда

ако [ $лаб -ге педесет ]

онда

одјек 'Прошли сте.'

друго

одјек 'Ниси успео.'

бити

друго

одјек 'Ниси успео.'

бити

друго

одјек „Теоријска или лабораторијска ознака је празна.“

бити

Излаз :

Следећи излаз се појављује ако су обе или једна од улазних вредности празне:

  п6-1

Следећи излаз се појављује ако се 78 узме као теоријске оцене, а 45 као лабораторијске оцене. Овде, други услов „ако“ враћа „нетачно“:

  п6-2

Следећи излаз се појављује ако се 67 узме као теоријске оцене, а 56 као лабораторијске оцене. Овде оба услова „ако“ враћају „тачно“:

  п6-3

Следећи излаз се појављује ако се 50 узме као теоријске оцене, а 80 као лабораторијске оцене. Овде, први услов „ако“ враћа „нетачно“:

  п6-4

Иди на врх

Употреба изјаве „Иф“ за проверу постојања датотеке

Постојање датотеке може се проверити басх скриптом на два начина. Један је коришћење „-ф” оператора са „[]” заградама. Други користи команду „тест“ и оператор „-ф“. Узима се име датотеке и проверава постојање датотеке користећи услов „иф“ са оператором „-ф“. Затим се узима друго име датотеке и проверава постојање датотеке користећи наредбу „иф“ са командом „тест“ и оператором „-ф“.

#!/бин/басх

#Узми име датотеке

читати -п 'Унесите име датотеке:' фн1

#Проверите да ли датотека постоји или не без употребе `тест`

ако [ $фн1 ]

онда

одјек ' $фн1 датотека постоји.'

друго

одјек ' $фн1 фајл не постоји.'

бити

#Додај нови ред

одјек

#Узми друго име датотеке

читати -п „Унесите друго име датотеке:“ фн2

#Проверите да ли датотека постоји или не користећи `тест`

ако тест $фн2 ; онда

одјек ' $фн2 датотека постоји.'

#Проверите да ли је датотека празна или не користећи `тест`

ако тест -Са $фн2 ; онда

одјек ' $фн2 датотека је празна.'

друго

одјек ' $фн2 датотека није празна.'

бити

друго

одјек ' $фн2 фајл не постоји.'

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте узимајући „тест.ткт“ и „тестинг.ткт“ као називе датотека. Према излазу, обе датотеке постоје на тренутној локацији и датотека „тестинг.ткт“ је празна:

  п7-1

Следећи излаз се појављује након извршавања скрипте узимајући „ф1.ткт“ и „тест.ткт“ као имена датотека. Према излазу, датотека „ф1.ткт“ не постоји на тренутној локацији и датотека „тест.ткт“ није празна:

  п7-2

Иди на врх

Употреба изјаве „Иф“ за проверу постојања именика

Постојање директоријума се може проверити помоћу Басх скрипте на два начина као и датотека. Један од њих је коришћење оператора '-д' са заградама '[]'. Други користи команду „тест“ и оператор „-д“. Име директоријума се узима и проверава постојање директоријума користећи услов „иф“ са оператором „-д“. Затим се узима друго име директоријума и проверава постојање датотеке користећи наредбу „иф“ са командом „тест“ и оператором „-д“.

#!/бин/басх

#Узмите име директоријума

читати -п „Унесите име директоријума:“ ти1

#Проверите да ли директоријум постоји или не без употребе `тест`

ако [ $дир1 ]

онда

одјек ' $дир1 директоријум постоји.'

друго

одјек ' $дир1 директоријум не постоји.'

бити

#Додај нови ред

одјек

#Узмите друго име директоријума

читати -п „Унесите друго име директоријума:“ дир2

#Проверите да ли датотека постоји или не користећи `тест`

ако тест $дир2

онда

одјек ' $дир2 директоријум постоји.'

друго

одјек ' $дир2 директоријум не постоји.'

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте са именима директоријума „темп“ и „филес“. Према излазу, оба директоријума постоје на тренутној локацији. Затим се извршава команда „лс“ да би се проверио садржај директоријума:

  п8-1

Следећи излаз се појављује након извршавања скрипте са именима директоријума „тестирање“ и „нови“. Према излазу, оба директоријума не постоје на тренутној локацији. Затим, излаз команде „лс“ показује да оба директоријума не постоје:

  п8-2

Иди на врх

Употреба изјаве „Иф“ са Регек-ом

Следећа скрипта показује метод провере ваљаности улазних података помоћу наредбе „иф“ са регуларним изразом. Овде се две улазне вредности преузимају од корисника и чувају у променљивим „$боокнаме“ и „$боокприце“. Услов „иф“ се користи у скрипти да би се проверило да ли променљива „$боокнаме“ садржи све абецедне знакове, а „$боокприце“ садржи број.

#!/бин/басх

#Узмите име књиге и цену од корисника

одјек „Унесите назив књиге:“

читати име књиге

одјек „Унесите цену књиге:“

читати боокприце

#Проверите да назив књиге садржи само абецеду

ако ! [ [ ' $боокнаме ' =~ [ А-За-з ] ] ] ; онда

одјек „Назив књиге је неважећи.“

друго

одјек „Назив књиге је важећи.“

бити

#Проверите да цена књиге садржи само цифре

ако ! [ [ ' $боокприце ' =~ [ 0 - 9 ] ] ] ; онда

одјек „Цена књиге може да садржи само цифре.“

друго

одјек „Цена књиге је важећа.“

бити

Излаз :

Следећи излаз се појављује након извршавања скрипте са улазним вредностима „Басх Программинг“ као именом књиге и 78 као ценом књиге:

  п9-1

Следећи излаз се појављује након извршавања скрипте са улазним вредностима 90 као именом књиге и „Басх“ као ценом књиге:

  п9-2

Иди на врх

Употреба изјаве „Случај“.

Наредба „цасе“ је алтернатива наредби „иф-елиф-елсе“, али сви задаци изјаве „иф-елиф-елсе“ се не могу обавити помоћу изјаве „цасе“. Једноставна употреба наредбе „цасе“ приказана је у следећој скрипти. Нумеричка вредност се узима од корисника као вредност текућег месеца. Затим се штампа одговарајући месец ако се у изјави „цасе“ нађе било која одговарајућа вредност. У супротном, штампа се подразумевана порука.

#!/бин/басх

#Узмите вредност текућег месеца у броју

читати -п „Унесите данашњи месец у број:“ б_монтх

#Одштампајте текст пре штампања назива месеца

одјек „Назив тренутног месеца је „

#Пронађите и одштампајте одговарајући назив месеца на основу уноса

случај $б_монтх ин

1 | 01 ) одјек „јануар“. ;;

2 | 02 ) одјек „фебруар“. ;;

3 | 03 ) одјек „Март“. ;;

4 | 04 ) одјек 'Април.' ;;

5 | 05 ) одјек 'Може.' ;;

6 | 06 ) одјек 'Јун.' ;;

7 | 07 ) одјек 'Јул.' ;;

8 | 08 ) одјек 'Август.' ;;

9 | 09 ) одјек 'Септембар.' ;;

10 ) одјек „октобар“. ;;

Једанаест ) одјек 'новембар.' ;;

12 ) одјек „Децембар“. ;;

* ) одјек 'није пронађен.' ;;

есац

Излаз :

Следећи излаз се појављује након извршавања скрипте са вредношћу 6:

  п10-1

Следећи излаз се појављује након извршавања скрипте са вредношћу 09:


  п10-2

Следећи излаз се појављује након извршавања скрипте са вредношћу 14:

  п10-3

Иди на врх

Закључак

Различите употребе условне логике помоћу наредби „иф“ и „цасе“ приказане су у 10 примера овог упутства. Концепт коришћења условне логике у Басх-у ће бити очишћен за нове Басх кориснике након читања овог водича.