Teste para uma sequência de comprimento diferente de zero no Bash: [-n "$ var"] ou ["$ var"]

Eu vi scripts bash testarem seqüências de comprimento diferentes de zero de duas maneiras diferentes. A maioria dos scripts usa a opção -n:

#!/bin/bash
# With the -n option
if [ -n "$var" ]; then
  # Do something when var is non-zero length
fi

Mas a opção -n não é realmente necessária:

# Without the -n option
if [ "$var" ]; then
  # Do something when var is non-zero length
fi

Qual é o melhor caminho?

Da mesma forma, qual é a melhor maneira de testar comprimento zero:

if [ -z "$var" ]; then
  # Do something when var is zero-length
fi

ou

if [ ! "$var" ]; then
  # Do something when var is zero-length
fi

questionAnswers(6)

yourAnswerToTheQuestion