本文概述
- case是怎么运行的
- 结论
Bash case语句是具有许多ELIF元素的IF-THEN-ELSE的最简单形式。使用case语句使我们的bash脚本更具可读性,更易于维护。这些通常用于简化具有多种不同选择的复杂条件。
Bash case语句遵循与Javascript或C switch语句类似的逻辑。略有不同,如下所示:
- Bash case语句只接受一次值,然后多次测试该值。一旦找到模式并执行与其链接的语句,它将停止搜索模式,这与C switch语句的情况几乎相反。
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语句有一些关键点:
- bash中的每个case语句均以“ case”关键字开头,后跟case表达式和“ in”关键字。用’ esac’ 关键字关闭case语句。
- 我们可以应用以|分隔的多个模式操作员。 )运算符指示模式列表的终止。
- 包含语句的模式称为子句,并且必须以双分号(; ; )终止。
- 星号(*)用作定义默认大小写的最终模式。当用作最后一种情况时,它用作默认情况。
如果没有匹配的模式,则案例的退出状态为零。否则,返回状态是已执行语句的退出状态。
如果使用默认的星号模式,则在没有匹配模式的情况下将执行它。
让我们尝试通过一些示例来了解这种机制:
例子1
在此示例中,我们定义了一个简单的场景来演示case语句的用法。
Bash脚本
#!/bin/bashecho "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 srcmini."
;
;
esac
输出量
文章图片
例子2
在此示例中,我们定义了一个组合方案,其中还存在一个默认情况,即找不到以前匹配的大小写。
Bash脚本
#!/bin/bashecho "Which Operating System are you using?"
echo "Windows, Android, Chrome, Linux, Others?"
read -p "Type your OS Name:" OScase $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
输出量
我们使用三个不同的输入运行了脚本,请检查以下输出:
文章图片
结论【bash case语句】在本主题中,我们通过示例了解了Bash Case语句的语法和用法。