Sim, eles ( [ -z "$VAR" ]e [ "$VAR" = "" ]...) são equivalentes. Ambos estão testando o vazio de $VAR(por exemplo, quando não está vinculado ou definido como uma sequência vazia).
Conforme comentado por Celada , coisas ruins podem acontecer ao usar [ "$VAR" = "" ] if se VARhouver algum teste válido (por exemplo, if VARis -z), em particular quando [(ou test) não for um shell embutido. Mas, bashou zsha [um builtin e que não parece ser um problema. Você poderia usar [ "x$VAR" = "x" ]para o seu teste. Ver teste (1)
Obviamente, estou assumindo algum shell POSIX ou algo semelhante.
Talvez -zseja um pouco mais rápido (mas você não deve se importar com microssegundos em scripts de shell) e =talvez seja mais legível.
==é uma sintaxe incorreta, mas funciona em muitas conchas (presumivelmente porque é a memória muscular de qualquer pessoa que use outras línguas). Você deveria estar usando=.