unset (de l'anglais to unset que l'on pourrait traduire par rendre indéfini) est une commande Unix[1] qui efface de la mémoire les variables passées en paramètre. Cette commande ne retourne aucun résultat (void).
-v
: détruit une variable (comportement par defaut)-f
: détruit une fonctionNote: la première ligne correspond au shebang et les informations précédées d'un croisillon « # » sont des commentaires.
Avec une variable :
#!/bin/sh
ma_variable='Hello world!' # on définit une variable et on lui affecte une valeur
echo $ma_variable # on affiche la valeur de la variable
unset ma_variable # on détruit la variable (identique à unset -v ma_variable)
echo $ma_variable # rien n'est affiché car la variable n'existe plus
Avec une fonction et le paramètre -f
:
#!/bin/sh
ma_fonction()
{
echo "Bonjour le monde!"
}
ma_fonction # on appelle la fonction qui affiche « Bonjour le monde! »
unset -f ma_fonction # on détruit la fonction
ma_function # affiche une erreur similaire à « ma_fonction: not found » car la fonction n'existe plus
unset est également disponible dans :