码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)

时间:2014-09-10 15:58:50      阅读:606      评论:0      收藏:0      [点我收藏+]

标签:shell   正则表达式   bash   

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/bash

echo "Test No.1 ..."
case "1" in
    1)
        echo '1'
        ;;&
    2)
        echo '2'
        ;;
    3)
        echo '3'
        ;;
    ?)
        echo '?'
        ;;
    *)
        echo '*'
        ;;
esac

echo "Test No.2 ..."
case "1" in
    1)
        echo '1'
        ;;
    2)
        echo '2'
        ;;&
    3)
        echo '3'
        ;;
    ?)
        echo '?'
        ;;
    *)
        echo '*'
        ;;
esac


echo "Test No.3 ..."
case "1" in
    1)
        echo '1'
        ;&
    2)
        echo '2'
        ;;
    3)
        echo '3'
        ;;
    ?)
        echo '?'
        ;;
    *)
        echo '*'
        ;;
esac

echo "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 ...
1
Test No.3 ...
1
2
Test No.4 ...
1



Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)

标签:shell   正则表达式   bash   

原文地址:http://blog.csdn.net/kibaamor/article/details/39180447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!