En bash, ¿son [[ $variable ]]
y [[ -n $variable ]]
completamente equivalentes? Parece ser el caso a juzgar por el resultado a continuación, pero veo que ambas formas de uso prevalecen en los scripts de 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 ]
lo mismo [ -n -n ]
. En shells que no sean zsh, los argumentos de comando (incluso los incorporados) o las variables de shell no pueden contener caracteres NUL.
[[ -n $(echo -ne "\0") ]]; echo $?
y[ -n $(echo -ne "\0") ]; echo $?
difieren