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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top