Come avvisare per l'uso di variabili non impostate in uno script KornShell.
Domanda
Esiste un modo per generare errori o avvisi in uno script di KornShell (ksh) per impedire l'uso di variabili non impostate? Supponiamo che io abbia una cartella temporanea che voglio rimuovere.
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
Come prevenire questo tipo di errori prima che si verifichino realmente?
So che lo script dovrebbe verificare l'esistenza del file e la stringa vuota prima di tentare di rimuovere, questo è solo un esempio sciocco per illustrare un errore che avrebbe potuto essere evitato con alcuni avvisi. Non so se questa funzionalità esiste in ksh. Se esiste, come si accende?
Soluzione
Il comando
set -u
Causerà POSIX sh (1) e i suoi derivati ??quando si tenta di espandere una variabile non impostata.
Esempio:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
Altri suggerimenti
Puoi verificare se la variabile ha contenuto, ovvero non essere "", e stampare un messaggio come "quot la variabile è vuota".
Tuttavia, questo non risolverà ancora gli errori PEBCAK in questo modo - tutto ciò che sapresti è che non è successo nulla.