Cómo advertir sobre el uso de variables no establecidas en un script KornShell.
Pregunta
¿Hay alguna manera de arrojar errores o advertencias en un script KornShell (ksh) para evitar el uso de variables no establecidas? Supongamos que tengo una carpeta temporal que quiero eliminar.
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
¿Cómo evitar este tipo de errores antes de que sucedan realmente?
Sé que el script debe verificar la existencia del archivo y la cadena vacía antes de intentar eliminar, este es solo un ejemplo tonto para ilustrar un error que podría haberse evitado con algunas advertencias. No sé si esta característica existe en ksh. Si existe, ¿cómo lo activa?
Solución
El comando
set -u
Causará que POSIX sh (1) y sus derivados se quejen cuando se intente expandir una variable no establecida.
Ejemplo:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
Otros consejos
Puede verificar que la variable tenga contenido, es decir, no estar '', e imprimir un mensaje como '' la variable está vacía ''.
Sin embargo, eso todavía no va a solucionar errores de PEBCAK como este: todo lo que sabría es que no pasó nada.