Linux下shell中case命令详解

linux下shell中的case名字和C/C++中的switch类似,但是shell中的case更强大和复杂。

1、强大主要体现在:shell中case中的关键字可以是字符串类型,而每一项中可以包含正则表达式。

2、复杂主要体现在:shell中case的每一个项后有三个选择:break(常规的break)、unconditional follow up(无条件继续)和conditional follow up(有条件继续)。

这篇文章的重点是上面的第2点。

case的无条件继续和有条件继续是bash 4.1.x及之后的版本中才有的特性。

执行如下命令可以查看你当前bash的版本

echo $BASH_VERSION

常规的break是在每一项后面加;;

无条件继续是在每一项后面加;&

有条件继续实在每一项后面加;;&

测试代码

#!/bin/bashecho "Test No.1 ..."case "1" in 1) echo '1' ;;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.2 ..."case "1" in 1) echo '1' ;; 2) echo '2' ;;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.3 ..."case "1" in 1) echo '1' ;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.4 ..."case "1" in 1) echo '1' ;; 2) echo '2' ;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esac

测试结果:

Test No.1 ...1?Test No.2 ...1Test No.3 ...12Test No.4 ...1

(0)

相关推荐

  • Linux中mount命令详解(一)

    mount命令格式: mount  [-t  vfstype]  [-o  options]  device  dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定.mount ...

  • Linux下各种服务器的架设详解

    ########DNS########bind 篇######## 1.1 软件的相关资源。 官方网站:http://www.bind.com/ 源码软件包官方下载:http://www.isc.or ...

  • Linux磁盘管理之df命令详解和使用实例(查看磁盘空间占用情况)

    Linux磁盘管理之df命令详解和使用实例(查看磁盘空间占用情况)

  • linux下ffmpeg的使用方法详解

    格式转换 (将file.avi 转换成output.flv) #ffmpeg -i file.avi output.flv -i 表示输入文件 :现在有个视频video.avi,有个音频 audio. ...

  • linux查看文件目录信息ls命令详解

    随着电脑技术的普及,越来越多的人尝试使用Linux操作系统.然而,较之windows图形用户界面,linux的命令行界面需要记住众多的命令.本文,讲解linux命令行下基本的文件操作命令. 操作方法 ...

  • Linux中iptraf命令详解(IP局域网监控工具)

    iptraf是一个基于ncurses开发的IP局域网监控工具,它可以实时地监视网卡流量,可以生成各种网络统计数据,包括TCP信息.UDP统计.ICMP和OSPF信息.以太网负载信息.节点统计.IP校验 ...

  • LINUX的磁盘管理du命令详解

    命令用途du(disk usage)命令可以计算文件或目录所占的磁盘空间。没有指定任何选项时,它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作目录所占总快数。 命令格式 ...

  • linux的Sudo/su授权命令详解

    由于Ubuntu是基于Debian的操作系统,在默认的情况下,是没有超级用户(superuser, root)的,但有些系统操作必须有超级用户的权限才能进行,如手动释放内存等.当遇到某些文件目录,当前 ...

  • Linux Shell脚本系列教程(二):终端打印命令详解

    这篇文章主要介绍了Linux Shell脚本系列教程(二):终端打印命令详解,本文着重讲解了echo终端打英printf终端打印两个打印出输出命令,需要的朋友可以参考下 终端打印 终端是交互式工具,用 ...