shell case语句
admin
2023-03-05 20:41:07
0

     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进行替代

 


相关内容

热门资讯

【第一资讯】“微乐锄大贰.到底... 您好:微乐锄大贰这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
我来教教您“钱塘十三水.辅助器... 我来教教您“钱塘十三水.辅助器?”必胜开挂神器您好,钱塘十三水这个游戏其实有挂的,确实是有挂的,需要...
【第一资讯】“九酷炸金花.到底... 【第一资讯】“九酷炸金花.到底有挂吗?”果然有透视挂您好,九酷炸金花这个游戏其实有挂的,确实是有挂的...
【今日要闻】“,728游戏.辅... 家人们!今天小编来为大家解答,728游戏透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
玩家分享攻略“官方正版炸金花.... 家人们!今天小编来为大家解答官方正版炸金花透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪...
终于懂了“桂麻圈.开挂神器?”... 您好:桂麻圈这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏中...
今日重大发现“功夫熊猫炸金花.... 家人们!今天小编来为大家解答功夫熊猫炸金花透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪...
我来教教您“微友山西麻将.怎么... 家人们!今天小编来为大家解答微友山西麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
今日重大发现“掌中乐游戏中心.... 有 亲,根据资深记者爆料掌中乐游戏中心是可以开挂的,确实有挂(咨询软件无...
玩家分享攻略“想游中心五.究竟... 您好:想游中心五这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...