case语句相当于多分支的if/elif/else语句,而在使用case会让脚本看起来更简单工整。在case语句中,程序会将获取到的值与case表达式中的条件逐一进行对比,如果匹配则执行对应的语句,遇到双分号(;;)则停止执行。如果一直未找到匹配项,则执行*)后面的语句,相当其他语言中的default功能。
基本语法
case \"var\" in
value 1)
语句
;;
value 2)
语句
;;
value n)
语句
;;
*)
语句
esac
最后一个分支语句,即esac前,可以省略双分号
case示例
[root@localhost Test]# cat case.sh
#!/bin/bash
a=$1
case \"${a}\" in
1)
echo \"input number is 1\"
;;
2)
echo \"input number is 2\"
;;
3)
echo \"input number is 3\"
;;
*)
echo \"case default value\"
esac
[root@localhost Test]# bash case.sh 1
input number is 1 # 匹配条件1
[root@localhost Test]# bash case.sh 3
input number is 3 # 匹配条件3
[root@localhost Test]# bash case.sh a
case default value # 未匹配到条件
使用if语句同样可以达到同样的效果
[root@localhost Test]# cat caseif.sh
#!/bin/bash
a=$1
if [ ${a} -eq 1 ]
then
echo \"input number is 1\"
elif [ ${a} -eq 2 ]
then
echo \"input number is 2\"
elif [ ${a} -eq 3 ]
then
echo \"input number is 3\"
else
echo \"case default value\"
fi
[root@localhost Test]# bash caseif.sh 1
input number is 1
[root@localhost Test]# bash caseif.sh 3
input number is 3
[root@localhost Test]# bash caseif.sh a
caseif.sh: 第 3 行:[: a: 期待整数表达式
caseif.sh: 第 6 行:[: a: 期待整数表达式
caseif.sh: 第 9 行:[: a: 期待整数表达式
case default value
case语句总结
- 1、case语句比较适合变量值较少且为固定的数字或字符串集合的情况。
- 2、case一般常用于编写服务的启动脚本等
- 3、if则是取值进行判断比较,应用面比case要广,大部分的case语句可以使用if进行替代
继续阅读与本文标签相同的文章
-
关闭Windows休眠功能,删除 hiberfil.sys 文件,腾出可用空间 - Windows 10
2026-05-19栏目: 教程
-
快照技术使用
2026-05-19栏目: 教程
-
受用一生的高效 PyCharm 使用技巧(六)
2026-05-19栏目: 教程
-
用户数从 0 到亿,我的 K8s 踩坑血泪史
2026-05-19栏目: 教程
-
PgSQL · 特性分析 · 浅析PostgreSQL 中的JIT
2026-05-19栏目: 教程
