Командата Bash case се използва за предприемане на правилни действия чрез сравняване на данни като оператор if. Работи като оператор за превключване на случай на други стандартни езици за програмиране. Тази команда започва с оператор 'case' и се затваря с оператор 'esac'. В командата за случай не се използва израз на прекъсване и се изисква двойна скоба (;;), за да се спомене изразът (ите) за конкретно съвпадение. Тази команда разширява израза и се опитва да съвпадне с дадения шаблон и кодът за изход на състоянието на тази команда ще бъде нула, ако не бъде намерено съвпадение. Някои често срещани примери за изявления за случаи са показани в този урок.
Пример-1: проста декларация за случай
В командата bash case се използва единичен условен израз за генериране на изхода въз основа на условието за съвпадение. Създайте bash файл с име дело1.ш със следния bash скрипт. Скриптът ще вземе стойност на низ и ще съответства на стойността с всеки израз. Следният скрипт ще генерира „Няма намерен запис“, ако не съществува съвпадащ израз,
дело1.ш
echo "Въведете името си"
прочетете име
случай $ име в
Yesmin)
ехо "Вашият любим цвят е син" ;;
Фахмида)
ехо "Вашата любима напитка е Sprite" ;;
*)
ехо „Няма намерен запис“ ;;
esac
Стартирайте скрипта.
$ bash case1.шИзход:
Файлът се изпълнява с валиден и невалиден вход тук за тестване на изхода.
Пример-2: множествен случай с тръба
В bash скрипта могат да бъдат приложени множество изрази на регистър за изпълнение на различни типове изрази. Символът Pipe (|) може да се използва за присвояване на множество изрази. Създайте bash файл с име дело2.ш със следния скрипт. След стартиране на скрипта, ако входната стойност съвпада с който и да е израз, ще се отпечата съответната текстова стойност.
дело2.ш
echo "Въведете вашия идентификационен номер"
прочетете ID
случай $ ID в
65341)
ехо "Вашата позиция е 1-ва" ;;
97564 | 88453)
ехо "Вашата позиция е 2-ра" ;;
45087)
ехо "Вашата позиция е 3-та" ;;
*)
ехо "Невалиден идентификатор" ;;
esac
Стартирайте скрипта .
$ bash case2.шИзход:
Този скрипт също работи като предишния пример. Единствената разлика е, че стойностите на множество изрази се тестват за един изход.
Пример-3: Как да излезете от блока за изявления case / esac
Когато командата bash case се използва под безкраен цикъл, командата за излизане е необходима за прекратяване на цикъла. Този пример показва как могат да бъдат изпълнени тези типове задачи. Създайте текстов файл с име дело3.ш със следния скрипт. Този скрипт ще вземе за вход всяко число от 1 до 3. Ако входът е 1, тогава ще бъдат добавени две числа, ако входът е 2, тогава две числа ще бъдат извадени и ако входното число е 3, тогава две числа ще бъдат умножени. Изходът ще бъде „Невалиден запис“, ако входното число е повече от 3 или по-малко от 1 или е празно.
дело3.ш
#!/ bin / bash
докато (вярно)
направете
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
ехо "Тип 1 или 2 или 3"
чете анс
дело $ ans in
1) ехо "Сумата от $ a и $ b е $ x & изход" ;;
2) ехо "Изваждането на $ a и $ b е $ y & изход" ;;
3) ехо "Умножението на $ a и $ b е $ z & exit" ;;
*) ехо "Невалиден запис"
esac
Свършен
Стартирайте скрипта.
$ bash case3.шИзход:
Скриптът ще продължи да се изпълнява, докато не се натисне ctrl + c.
Пример-4: Проверка на празна стойност на аргумента на командния ред
Аргументната променлива на командния ред може да се използва в оператора на bash case. Създайте файл с име дело4.ш със следния скрипт, който ще провери стойността на втората променлива на аргумента.
#!/ bin / bashдело "$ 2" в
"Ubuntu")
echo "Вторият аргумент е $ 2."
;;
"CentOS")
echo "Вторият аргумент е $ 2."
;;
"")
echo "Вторият аргумент е празен."
;;
esac
Стартирайте скрипта.
$ bash case4.шИзход:
Тук скриптът се изпълнява без никаква стойност на аргумент от втори ред за първи път и изходът показва „Вторият аргумент е празен“. Когато скриптът се изпълни със стойност на аргумент от втори ред за втори път, тогава не се показва изход.
Пример-5: множествен случай, базиран на потребителски вход
Създайте bash файл с име дело5.ш със следния скрипт. Скриптът ще вземе името на месеца като въвеждане от потребителя. Ако името на месеца съвпада с която и да е стойност на случая, тогава в променливата Съобщение ще бъде присвоено конкретно текстово съобщение. Входната стойност трябва да е пълното име на месеца или тримесечното име на месеца.
дело5.ш
#!/ bin / bashecho "Въведете името на месец"
прочетете месец
дело $ месец в
Януари | януари *)
Съобщение = "21 февруари е нашият Международен ден на майката."
;;
Февруари | февруари *)
Съобщение = "21 февруари е нашият Международен ден на майката."
;;
Март | март *)
Съобщение = "9 март е световният ден на бъбреците."
;;
Април | април *)
Съобщение = "Текущият месец не е февруари"
;;
Май | май *)
Съобщение = "Текущият месец е февруари"
;;
Юни | юни *)
Съобщение = "Текущият месец е февруари"
;;
*)
Съобщение = "Няма намерена съвпадаща информация"
;;
esac
echo $ Съобщение
Стартирайте скрипта.
$ bash case5.шИзход:
Следният изход ще се появи за входната стойност „март“ или „март“.
Пример-6: Проверете променливата в оператора на bash case
Всяка низова стойност може да бъде отпечатана чрез проверка на стойността на променливата на аргумента на командния ред. Създайте текстов файл с име дело6.ш със следния скрипт. В този пример се проверява стойността на първата променлива на аргумента и ако стойността е празна, тогава ще се отпечата низ, „Харесва ми програмиране на bash“.
дело6.ш
#!/ bin / bashкутия $ 1 in
("") echo "Харесва ми баш програмиране";
esac
Стартирайте скрипта.
$ bash case6.шИзход:
Този скрипт се изпълнява с и без първи аргументи. Няма да има изход, ако не премине променлива на аргумент от командния ред.
Заключение
В тази статия са показани различни приложения на командата bash case. Ако читателите практикуват тези примери правилно, ще им бъде по-лесно да решат много проблеми с програмирането на bash.