Bash : sortir automatiquement du script si une variable n'est pas initialisée

Utiliser la commande set -u pour tester l'initialisation des variables.

La commande set possède plusieurs options très utiles pour sécuriser vos scripts bash. Parmi elles "set -u", que l'on peut aussi utiliser sous la forme "set -o nounset", permet de sortir automatiquement du script lors de l'utilisation d'une variable non initialisée. En plaçant cette commande en haut de votre script, vous n'aurez donc plus besoin de tester manuellement chaque variable avant de l'utiliser.

Tester automatiquement si une variable est initialisée

#!/bin/bash echo "Pas d'erreur avant set: "$test; if [ "$test" == "" ]; then echo "On peut voir ainsi qu'une variable n'est pas initialisée"; fi # A partir d'ici, le script quittera automatiquement # si une variable n'est pas initialisée set -u; # Désactivation du test automatique set +u; echo "Cette ligne ne provoquera aucune erreur"$test; # Réactivation du test automatique set -u; echo "Une erreur sera renvoyée : "$test; echo "Cette ligne n'apparaîtra jamais";

Le résultat du lancement du script

$ ./script.sh Pas d'erreur avant set: On peut voir ainsi qu'une variable n'est pas initialisée Cette ligne ne provoquera aucune erreur ./script.sh: ligne 20: test : variable sans liaison

Découvrez une autre utilisation de set pour tester automatiquement les codes retours des commandes.