Maneira portátil de verificar o vazio de uma variável do shell [duplicado]

Esta questão já tem uma resposta aqui:

Por que as comparações de script de shell geralmente usam x $ VAR = xyes? 7 respostas

Qual é a maneira portátil e canônica de testar se a variável está vazia / indefinida em um script de shell? Deve funcionar em todos os shells. O que eu faço agora é algo como:

if [ -z "$var" ] ; then
    ...

e para reverso, fazendo algo quando a variável não está vazia / indefinida:

if [ -n "$var" ] ; then
    ...

E enquanto estes trabalham para os scripts que escrevo agora,Eu gostaria de saber uma maneira, que funcionará em qualquer razoavelmente compatívelshcomo shell, mesmo em um ambiente mais obscuro do que um PC Linux com o GNU userland ebater outraço.

Estou à procura de uma "resposta especializada" de alguém que é experiente em diferentes ambientes de casca e conhece as armadilhas de diferentes maneiras de fazer as coisas, não uma opinião como "que deve funcionar".

questionAnswers(5)

yourAnswerToTheQuestion