bashでは[[ $variable ]]
、[[ -n $variable ]]
完全に同等ですか?以下の出力から判断するとそうなのかと思われますが、シェルスクリプトでは両方の使用方法が見られます。
$ z="abra"
$ [[ $z ]]
$ echo $?
0
$ [[ -n $z ]]
$ echo $?
0
$ z=""
$ [[ $z ]]
$ echo $?
1
$ [[ -n $z ]]
$ echo $?
1
$ unset z
$ [[ $z ]]
$ echo $?
1
$ [[ -n $z ]]
$ echo $?
1
二つ目には、あなたはそれがされてしまったので、コマンド置換を引用するのを忘れたためだ@dchirikov、
—
ステファンChazelas
[ -n ]
、同じことを[ -n -n ]
。zsh以外のシェルでは、コマンド(組み込み)の引数またはシェル変数にNUL文字を含めることはできません。
[[ -n $(echo -ne "\0") ]]; echo $?
と[ -n $(echo -ne "\0") ]; echo $?
異なる