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

shell [ ] 与 [[ ]] 区别

时间:2018-03-05 11:14:26      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:分享图片   class   返回   src   test   shell   span   info   选项   

[ ] 与[[ ]] 均可以判断变量是否为空, [ $a ] [[ $a ]]  [ ! $a ] [[ ! $a ]] 无区别

 在Linux中,我们可以使用test命令判断一个字符串是否为空,test命令为我们提供了"-z选项"与"-n选项",使用这两个选项可以判断字符串是否为空。

"-z选项"可以判断指定的字符串是否为空,为空则返回真,非空则返回假,-z可以理解为zero

"-n选项"可以判断指定的字符串是否为空,非空则返回真,为空则返回假,-n可以理解为nozero
 

test 中使用"-n"或者"-z"这些选项判断变量是否为空时,必须在变量的外侧加上双引号。而 [ ] 与 tets 效果相同,而在[[ ]] 并不用在变量上加 双引号。

技术分享图片

 使用test -n 命令判断变量b的值是否为空时,应该返回假,因为test命令的-n选项表示指定的字符串非空时,返回真,为空时, 返回假,但是上例中,‘test -n $b‘ 这条命令的返回值却为真(应该为假),这是明显不正确的

技术分享图片

 

 在使用"[[  ]]"时,不能使用"-a"或者"-o"对多个条件进行连接。

在使用"[  ]"时,如果使用"-a"或者"-o"对多个条件进行连接,"-a"或者"-o"必须被包含在"[ ]"之内。

在使用"[  ]"时,如果使用"&&"或者"||"对多个条件进行连接,"&&"或者"||"必须在"[ ]"之外。

 

shell [ ] 与 [[ ]] 区别

标签:分享图片   class   返回   src   test   shell   span   info   选项   

原文地址:https://www.cnblogs.com/lyy3306/p/8507303.html

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