Shell编程-07-Shell中的case语句


    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进行替代
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
MyQRCode.jpg
posted @   Surpassme  阅读(967)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示