Sí, ellos ( [ -z "$VAR" ]
y [ "$VAR" = "" ]
...) son equivalentes. Ambos están probando el vacío de $VAR
(p. Ej., Cuando no está vinculado o configurado en una cadena vacía).
Como comentó Celada , pueden ocurrir cosas malas cuando se usa [ "$VAR" = "" ]
si VAR
es una prueba válida (por ejemplo, si lo VAR
es -z
), en particular cuando [
(o test
) no es un shell incorporado. Pero on bash
o zsh
the [
es un incorporado y eso no parece ser un problema. Podrías usar [ "x$VAR" = "x" ]
para tu prueba. Ver prueba (1)
Por supuesto, estoy asumiendo un shell POSIX o algo similar.
Quizás -z
podría ser un poco más rápido (pero no debería importarle los microsegundos en los scripts de shell) y =
quizás le resulte más legible.
==
es una sintaxis incorrecta, pero funciona en muchos shells (presumiblemente porque es memoria muscular para cualquiera que use otros idiomas). Deberías estar usando=
.