`

Bash 中的 -n, -z, [], [[]] 条件测试

    博客分类:
  • Bash
阅读更多

1、在中括号中,判断变量的值, 加不加双引号的问题?

 

-n STRING

    the length of STRING is nonzero

-z STRING

    the length of STRING is zero


返回0,表示true

返回1,表示false

pid="123"
[ -z "$pid" ] 单对中括号,变量必须加双引号
[[ -z $pid ]] 双对中括号,变量不用加双引号
 
[ -n "$pid" ] 单对中括号,变量必须加双引号
[[ -z $pid ]] 双对中括号,变量不用加双引号

 
2、多个条件判断,[] 和 [[]] 的区别?


2.1:[[ ]] 双对中括号,是不能使用 -a 或 -o的参数进行比较的;只能使用 && 或 ||

[[ 5 -lt 3 || 3 -gt 6 ]]

[[ 5 -lt 3 ]] || [[ 3 -gt 6 ]]

 


2.2 [ ] 可以使用 -a 或 -o,但是必须在 [ ] 中括号内,例如:

[ 5 -lt 3 -o 3 -gt 2 ] 

 


如果想在中括号外判断两个条件,必须用&& 和 || 比较

[5 -lt 3 ] || [ 3 -gt 2]

[5 -gt 3 ] && [ 3 -gt 2] 

 


相对的,|| 和 && 不能在中括号内使用,只能在中括号外使用



3、当判断某个变量的值是否满足正则表达式的时候,必须使用[[ ]] 双对中括号

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics