O oposto de -z word
é -n word
ou simplesmente word
sem um operador:
foo=x
if [[ "$foo" ]] ; then
echo "foo is not empty"
fi
Observe que você não pode testar entre um valor vazio e um valor não definido dessa maneira. Você precisará de ${foo+x}
para isso: [[ "${foo+x}" = x ]]
será verdadeiro para qualquer valor conjunto , até mesmo uma string vazia.
-z
, -n
funcionaria com o teste padrão [ .. ]
, também, você não precisa de [[ .. ]]
para eles. A diferença aqui é que dentro de [ .. ]
as variáveis precisam ser citadas.