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 string vazia).
Como comentado por Celada , coisas ruins podem acontecer ao usar [ "$VAR" = "" ]
if VAR
é válido teste (por exemplo, se VAR
é -z
), em particular quando [
(ou test
) não é um shell embutido. Mas em bash
ou zsh
, o [
é interno e isso não parece ser um problema. Você pode usar [ "x$VAR" = "x" ]
para o seu teste. Veja teste (1)
Claro, estou assumindo algum shell POSIX ou algo semelhante.
Talvez -z
seja um pouco mais rápido (mas você não deve se preocupar com microssegundos em scripts de shell) e talvez você ache que =
talvez seja mais legível.