En bash, sont [[ $variable ]]
et [[ -n $variable ]]
complètement équivalents? Cela semble être le cas à en juger par la sortie ci-dessous, mais je vois les deux formes d'utilisation répandues dans les scripts shell.
$ 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
[ -n ]
la même [ -n -n ]
. Dans les shells autres que zsh, les arguments de commande (même intégrés) ou les variables de shell ne peuvent pas contenir de caractères NUL.
[[ -n $(echo -ne "\0") ]]; echo $?
et[ -n $(echo -ne "\0") ]; echo $?
diffèrent