У цій темі ми обговоримо основи операторів case і як їх використовувати в сценаріях Bash.
Інструкція Bash case є найпростішою формою IF-THEN-ELSE з багатьма елементами ELIF. Використання оператора case робить наш сценарій bash більш читабельним і простим у обслуговуванні. Зазвичай вони застосовуються для спрощення складних умов, що мають кілька різних варіантів.
Інструкція Case Bash дотримується подібної логіки, як оператор Javascript або C switch. Існує невелика різниця, а саме:
- Інструкція Bash case приймає значення один раз і перевіряє це значення кілька разів. Він припиняє пошук шаблону, коли він його знайшов і виконав оператор, пов’язаний з ним, що майже протилежно у випадку оператора switch C.
Синтаксис інструкції
Синтаксис оператора bash case наведено нижче:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Є кілька ключових моментів операторів bash case:
- Кожен оператор case у bash починається з ключового слова 'case', за яким слідують вираз case і ключове слово 'in'. Оператор case закривається ключовим словом 'esac'.
- Ми можемо застосувати кілька шаблонів, розділених | оператор. Оператор ) вказує на закінчення списку шаблонів.
- Шаблон, що містить оператори, називається пропозицією, і він повинен закінчуватися подвійною крапкою з комою (;;).
- Символ зірочки (*) використовується як останній шаблон для визначення регістру за замовчуванням. Він використовується як регістр за замовчуванням, коли використовується як останній регістр.
Як це працює
По-перше, оператор case розширює вираз і намагається відповідати кожному з включених шаблонів. Коли він знаходить відповідність, усі пов’язані оператори виконуються до подвійної крапки з комою (;;). Після першого збігу case завершується статусом виходу останнього виконаного оператора.
Якщо відповідного шаблону немає, статус виходу справи дорівнює нулю. В іншому випадку статус повернення є статусом виходу виконуваних операторів.
Якщо використовується шаблон зірочки за замовчуванням, він буде виконаний у разі відсутності відповідного шаблону.
Спробуємо зрозуміти цей механізм на кількох прикладах:
Приклад 1
У цьому прикладі ми визначили простий сценарій, щоб продемонструвати використання оператора case.
Скрипт Bash
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
Вихід
Приклад 2
У цьому прикладі ми визначили комбінований сценарій, де також існує випадок за замовчуванням, коли попередній відповідний випадок не знайдено.
як отримати приховані програми
Скрипт Bash
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
Вихід
Ми запустили сценарій із трьома різними входами, перегляньте вихідні дані нижче: