Manera portátil para verificar el vacío de una variable de shell [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué las comparaciones de script de shell a menudo usan x $ VAR = xyes? 7 respuestas

¿Cuál es la forma portátil y canónica de probar si la variable está vacía / no definida en un script de shell? Debería funcionar en todas las conchas sh-like. Lo que hago ahora es algo como:

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

y para revertir, hacer algo cuando la variable no está vacía / indefinida:

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

Y mientras estos trabajan para los guiones que escribo ahora,Me gustaría saber una manera, que funcione en cualquier forma razonablemente compatible.sh-como concha, incluso en un entorno más oscuro que una PC con Linux con usuario de GNU ygolpetazo oguión.

Estoy buscando una "respuesta experta" de alguien que tenga experiencia en diferentes entornos de shell y que conozca los inconvenientes de diferentes formas de hacer las cosas, no una opinión como "eso debería funcionar".

Respuestas a la pregunta(5)

Su respuesta a la pregunta