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 VARes una prueba válida (por ejemplo, si lo VARes -z), en particular cuando [(o test) no es un shell incorporado. Pero on basho zshthe [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 -zpodrí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=.