Suivant: La variable d'environnement Chapitre: Configurer votre environnement Avant: Shell scripts
Les variables et l'environnement
Le shell permet de définir des variables, comme la plupart des langages de programmation. Une variable est une donnée à qui l'on attribue un nom.
Notez que Tcsh, tout comme d'autres C-shells, utilise un mécanisme différent de ce qui est décrit ici pour assigner des valeurs aux variables. Nous considérons ici un shell Bourne, comme Bash (que vous utilisez probablement), ou le /bin/sh de la plupart des systèmes UNIX. Voyez la page de manuel de Tcsh si vous voulez savoir comment ce shell fonctionne.
Lorsque vous assignez une valeur à une variable (avec l'opérateur `` =''), vous pouvez alors accéder à cette variable en rajoutant un `` $'' devant son nom, voici un exemple:
Nous avons donné la valeur `` Salut la dedans'' à la variable que nous avons appelée toto. Nous pouvons maintenant nous référer à cette variable par son nom, préfixé par le caractère `` $''. La commande
produit maintenant le même résultat que
Ces variables sont internes au shell. Cela veut dire que seul le shell peut y avoir accès. C'est très utile dans les shell-scripts; si vous voulez utiliser un nom de fichier, vous pouvez le stocker dans une variable, comme ci-dessus. La commande set affiche une liste de toutes les variables définies à un moment donné.
Mais le shell vous permet d' exporter des variables dans l' environnement. L'environnement est un ensemble de variables auquel toutes les commandes que vous exécutez, scripts ou programmes binaires, ont accès. Une fois que vous avez défini une variable dans le shell, le fait de l'exporter la place dans cet environnement et la rend connue de tous vos programmes. La commande export est utilisée pour cette opération.
Là encore, la méthode est différente entre Bash et Tcsh. Sous les C-shells, les variables d'environnement sont positionnées selon une autre syntaxe (la commande setenv ), reportez-vous à la page de manuel.
L'environnement est une chose très importante dans les systèmes UNIX. Il vous permet de configurer certains programmes, simplement en positionnant des variables ad hoc.
Voici un petit exemple. La variable d'environnement PAGER est utilisée par la commande man; elle désigne le programme à utiliser pour afficher les pages. Si vous positionnez PAGER sur un nom de commande, il utilisera cette commande pour afficher les pages de manuel, au lieu de more qui est le programme utilisé par défaut.
Assignez `` cat'' à la variable PAGER. Cela aura pour effet de faire afficher par man, les pages en une seule fois, sans s'arrêter à chaque écran.
Maintenant, exportez PAGER dans l'environnement.
Essayez la commande man ls. La page de manuel va défiler sur votre écran, car elle est affichée en un seul bloc.
Maintenant, si nous positionnons PAGER sur `` more'', c'est cette commande qui sera utilisée pour l'affichage.
Notez que nous n'avons pas besoin d'utiliser la commande export une seconde fois, la variable est déjà exportée dans l'environnement; une fois suffit. Tout changement de sa valeur sera pris en compte.
Les pages de manuel des différentes commandes que vous utilisez vous renseigneront sur le nom des éventuelles variables d'environnement qu'elles peuvent utiliser; par exemple la page de manuel de man explique l'usage de PAGER. Certaines commandes partagent des variables; par exemple de nombreux programmes utilisent la variable EDITOR pour savoir quel est l'éditeur de texte préféré de l'utilisateur qu'il faudra utiliser par défaut.
L'environnement est aussi utilisé pour stocker certaines informations importantes de votre session. Un bon exemple, la variable HOME, qui contient le nom de votre répertoire personnel.
Une autre variable d'environnement qui vous intéressera sûrement: la variable PS1 définit l'invite principale de votre shell. Par exemple,
Pour remettre l'invite que vous aviez avant (qui contenait le répertoire courant suivi du symbole `` $''),
La page de manuel de bash décrit la syntaxe utilisée pour l'invite, lisez-la, on peut y mettre des choses très pratiques !