Bash:中的这两个选项之间有区别吗
# 1
if [[ "$VAR" ]]; then
#2
if [[ -n "$VAR" ]]; then
如果没有,是否存在真正需要-n
选项的情况?
由于[[
在变量方面比test
更聪明,因此基本上没有需要-n
的情况。
$ foo=-n
$ [[ $foo ]] ; echo $?
0
$ [[ -n ]] ; echo $?
bash: unexpected argument `]]' to conditional unary operator
bash: syntax error near `]]'
$ foo="-z bar"
$ [[ $foo ]] ; echo $?
0
$ [ $foo ] ; echo $?
1