2008-11-28 6 views
2

Est-il possible de lancer des erreurs ou des avertissements dans un script KornShell (ksh) pour empêcher l'utilisation de variables non définies? Supposons que j'ai un dossier temporaire que je veux supprimer.Comment avertir de l'utilisation de variables non définies dans un script KornShell.

TEMP_FILES_DIR='/app/myapp/tmp' 
rm -Rf $TEMP_FILE_DIR #notice the misspelling 

Comment éviter ce genre d'erreur avant qu'elles ne se produisent?

Je sais que le script devrait vérifier l'existence du fichier et la chaîne vide avant d'essayer de supprimer, c'est juste un exemple stupide pour illustrer une erreur qui aurait pu être évitée avec quelques avertissements. Je ne sais pas si cette fonctionnalité existe dans ksh. Si cela existe, comment l'allumer?

Répondre

6

La commande

set -u

provoquera POSIX sh (1) et ses dérivés Grouse lors d'une tentative pour développer une variable non durci est effectué.

Exemple:

 
$ echo $foo 

$ set -u 
$ echo $foo 
sh: foo: parameter not set 
0

Vous pouvez vérifier la variable pour avoir du contenu, c'est-à-dire ne pas être '', et imprimer un message comme "la variable est vide". Cependant, cela ne va pas encore corriger les erreurs PEBCAK comme ceci - tout ce que vous savez, c'est que rien ne s'est passé.

Questions connexes