温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

shell case语句

发布时间:2020-05-25 11:46:14 来源:网络 阅读:349 作者:大阿鹏 栏目:系统运维

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

 


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI