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.