Le shell gère des variables (une zone de mémoire nommée pouvant contenir une valeur) qui servent pour écrire des fonctions, offrir diverses fonctionnalités (invite de commande, historique...) ou paramétrer des commandes (éditeurs de texte, messagerie...). Le nom d’une variable peut comporter des lettres, des chiffres et le caractère souligné (« _ »), le premier caractère devant être une lettre ou le caractère souligné. Plusieurs variables ayant un rôle prédéfini ont par convention un nom composé de lettres majuscules.

L’affectation d’une variable s’effectue simplement avec l’opérateur égal, sans espace de part et d’autre du caractère égal. Le contenu d’une variable peut être un entier, une chaîne de caractères, le contenu d’une autre variable, le résultat d’une commande ou toute combinaison de ces éléments. Si ce contenu comporte des caractères spéciaux, il faut utiliser les simples quote ou double quotes selon l’interprétation souhaitée. Une variable est utilisable n’importe où dans une ligne de commande (nom d’une commande, argument, option...). Le contenu d’une variable (var) est obtenu avec son nom précédé du caractère dollar ($var). La fonction set, sans argument, permet d’afficher la liste des variables et fonctions du shell avec leur contenu. Pour ne visualiser que les variables, il faut activer le mode POSIX du shell avant d’utiliser la commande set: set -o posix; set. La fonction unset permet de supprimer les variables dont les noms sont passés en arguments.

Un certain nombre de variables sont soit positionnées automatiquement par le shell soit utilisées par lui. On les appelle variables prédéfinies et elles ont un nom composé de lettres majuscules. On peut distinguer trois catégories de variables prédéfinies: les variables d’usage général utilisées par tous les shells (HOME, PS1, PS2, PATH, IFS), diverses extensions du bash (PWD) et des variables liées à des fonctionnalités plus secondaires, certaines étant liées à d’autres commandes comme le type de terminal utilisé par les éditeurs: EDITOR, DISPLAY. La variable HOME est celle qui est utilisée lorsqu’un nom de fichier contient le tilde au début (~/UX est remplacé par $HOME/UX) ou pour la commande cd sans argument (cd remplacé par cd $HOME). La variable contenant l’invite de commande est PS1. Il existe une seconde invite de commande dite invite de commande de continuation (variable PS2) utilisée lorsqu’il y a un retour chariot dans une chaîne de caractères encadrée par une simple quote ou une double quote: par exemple,

Le shell recherche les commandes qu’il doit exécuter dans l’un des répertoires enregistrés dans la variable PATH. Celle-ci contient la liste des répertoires contenant des exécutables, séparés par le caractère deux points (« : »). À la connexion, la variable PATH est initialisée avec les répertoires standards (/bin et /usr/bin) et elle est complétée ensuite par les fichiers de paramétrage. On peut faire figurer le répertoire courant dans cette liste en utilisant le caractère deux points en fin de liste. L’ordre des répertoires est significatif, ce qui permet de choisir une version particulière d’un logiciel.  
 
Retour à la page de cours