case语句

case语句主要用来做选择的,多条件分支结构,case语句类似于if,但在某些情况下使用case更合适,case语句语法结构如下:

case 变量 in
pattern1)
command1
…;; #不管是单个命令还是多个commands的,最后一定要用两个分号做结尾表示该段程式码结束
pattern2 | pattern3 ) #用 | 表示或的关系
command2
…;;
*) #所有都不匹配时,就默认跳转到星号这里来
command4
…;; #这两个冒号可以没有,因为只要进入到星号来执行,执行完就结束整个case语句了
esac

讲解:
1、用变量值取匹配各个圆括号的pattern,匹配的上就去执行对应的所有commands,直到遇见两个分括号就结束case,不再执行余下的匹配项;若都不匹配的上时而且定义了星号匹配项,则执行星号项的commands;若都不匹配的上,连星号都没有,则case不执行;
2、可以用 | 符号来表示模式之间或的关系,即当变量值匹配的上pattern2 或pattern3时就执行command2;
3、用 星号来表示当所有的 pattern都不匹配时,就执行星号下的所有commands;
4、匹配到某个模式下时,不管该模式下有单个还是多个命令,最后都要以2个;;号来表示结束该段程序命令集合;
5、用右圆括号终止pattern的列表,左圆括号可以有也可以没有,标准的写法是只有右圆括号;
6、结束某个匹配项的所有commands后用两个分括号;;结束,当然也可以用;&或;;&,此时遇到这两个符号并不会立即退出case,而是不管是否匹配直接执行下个匹配项的commands直到遇到两个分号或遇到通配符星号才结束case;
7、不管通配符星号放在何处,一旦遇到通配符星号整个case就结束了,不过,正常的情况下建议把通配符星号放在最后面,因为case进行匹配时,是从上至下进行匹配的,当通配符星号放在中间时,即使真正能匹配的上的选项在通配符星号后面也不会被执行的到,因为执行了通配符星号的commands语句case就结束了;
8、通配符星号选项的commands可以不用两个分号结束,因为本身遇到通配符星号就退出case了;
9、case语句最后要以esac来结尾。
10、一个优秀的程序请保持正常的思维逻辑来书写。

演示示例:
#!/bin/bash
read -p “请输入一个字母:” num
case ${num} in
a|A)
echo “A”
echo “我是老A”
;;
b|B)
echo “B”
echo “我是老B”
;;
c|C|d|D)
echo “C或D”
echo “我是老C或D”
;;
*)
echo “其他字符”
echo “非ABC”
;;
esac

运行结果:
[root@Centos8 ~]# ./case.sh
请输入一个字母:B
B
我是老B

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值