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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top