Comment mettre en garde contre l'utilisation de variables non définies dans un script KornShell.
Question
Existe-t-il un moyen de générer des erreurs ou des avertissements dans un script KornShell (ksh) afin d’empêcher l’utilisation de variables non définies? Supposons que je souhaite supprimer un dossier temporaire.
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
Comment prévenir ce genre d’erreurs avant qu’elles ne se produisent réellement?
Je sais que le script doit vérifier l'existence du fichier et la chaîne vide avant de tenter de le supprimer. Il ne s'agit que d'un exemple ridicule pour illustrer une erreur qui aurait pu être évitée avec certains avertissements. Je ne sais pas si cette fonctionnalité existe en ksh. Si cela existe, comment l’allumez-vous?
La solution
La commande
set -u
Entraînera le tressaillement de POSIX sh (1) lors de la tentative d'extension d'une variable non définie.
Exemple:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
Autres conseils
Vous pouvez vérifier si la variable a du contenu, c'est-à-dire qu'elle n'est pas '', et imprimer un message du type "la variable est vide".
Cependant, cela ne résout toujours pas les erreurs PEBCAK de la sorte. Tout ce que vous savez, c'est que rien ne s'est passé.