SHELL脚本编程的条件测试
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.条件测试概述
判断某需求是否满足,需要由测试机制来实现 专用的测试表达式需要由测试命令辅助完成测试过程 评估布尔声明,以便用在条件性执行中 若真,则返回0 若假,则返回1 测试命令: test EXPRESSION [ EXPRESSION ] #推荐使用这种风格,易读性更强,操作系统很多脚本判断都是用的这种风格,不过还是看你自己个人习惯,毕竟bash的测试命令支持这三种风格,相当灵活。 [[ EXPRESSION ]] #支持正则表达式和通配符, #"==","!="符号右侧可使用通配符,左侧变量名建议加双引号("") #"=~"符号右侧可使用正则表达式,左侧变量名建议加双引号("") 注意:EXPRESSION前后必须有空白字符
[root@node101.yinzhengjie.org.cn ~]# a="" [root@node101.yinzhengjie.org.cn ~]# test -n "$a" [root@node101.yinzhengjie.org.cn ~]# echo $? 1 [root@node101.yinzhengjie.org.cn ~]# test -z "$a" [root@node101.yinzhengjie.org.cn ~]# echo $? 0 [root@node101.yinzhengjie.org.cn ~]# [ -n "$a" ] #推荐使用这种风格,易读性更强,其实操作系统的很多脚本都是使用这种风格的哟~ [root@node101.yinzhengjie.org.cn ~]# echo $? 1 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# [ -z "$a" ] [root@node101.yinzhengjie.org.cn ~]# echo $? 0 [root@node101.yinzhengjie.org.cn ~]# [[ -z "$a" ]] [root@node101.yinzhengjie.org.cn ~]# echo $? 0 [root@node101.yinzhengjie.org.cn ~]# [[ -n "$a" ]] [root@node101.yinzhengjie.org.cn ~]# echo $? 1 [root@node101.yinzhengjie.org.cn ~]#