Les variables d’environnement

 

 

Variables d’environnement

Tous processus disposent d’une zone d’environnement exportable ou locale, qui lui permet de mémoriser des valeurs, voir de les partager avec ses processus fils via une exportations des informations vers ses processus fils.

Cet environnement est composé de lignes sous la forme :
Nom de la variable d’environnement = valeur.

C’est la commande env ou set qui permet d’afficher l’ensemble des variables d’environnement exportables. Les variables exportables servent à la configuration de tous les processus ou programmes exécutés par un utilisateur.

La commande unset permet d’effacer, supprimer la variable d’environnement.


Déclaration et affectation d’une variable d’environnement

Il est possible de modifier ou de créer une variable d’environnement local.

Le symbole d’affection à une variable est « = ».

Ainsi, en tapant

PS1=’Entrez votre commande :’

le système remplacera le « $ » habituel par « Entrez votre commande: ».

Pour afficher le contenu d’une variable, vous pouvez utiliser la commande shell echo suivi de « $ » et du nom de la variable.

Dans certain cas, il faudra utiliser les accolades : Ex. ${NOM DE LA VARIABLE}.

Ce mécanisme peut être amélioré afin de tester l’existence de la variable et de provoquer une substitution spécifique.

Par exemple :

${variable-valeur} : L’interpréteur utilisera la variable si celle-ci est définie, la valeur sinon.

${variable=valeur} : utilisera la variable si celle-ci est définie, la valeur sinon et en affectant la variable avec cette même valeur.

${variable+valeur} : utilisera la valeur si la variable est définie, une chaîne vide sinon.

Cette manière d'écrire permettra de lever certaines ambiguïtées par exemple

echo $ab et echo ${a}b

dans le premier cas, il faut que la variable ab existe pour pouvoir afficher sa valeur, alors que dans le second cas, on affiche la valeur de a et le caractère "b".

 

 

Il est possible de spécifier une chaîne de caractères avec des " ou des '. Cependant, l’interpréteur de commande substituera la ou les variables présentes dans une chaîne délimitée par des " (guillemets) et uniquement avec des guillemets.

Exemple :
x=sesame
x1=’/usr/$x’
x2= "/usr/$x"
echo $x1 affichera : /usr/$x
echo $x2 affichera : /usr/sesame

Il est également possible d’affecter à une variable le résultat d’une commande shell grâce au caractère spécial ` (apostrophe inversée).

Exemple
X=pwd
X1=`$X`
Echo $X1 affichera le chemin courant.

Placer une variable dans l’environnement exportable

Pour créer et rendre une variable exportable ou modifier une valeur d’une variable exportable vers un autre processus, il faut utiliser la commande export suivie du nom de variable.

 

Liste de variables d'environnement prédéfinies

PATH : Liste des répertoires dans lesquels le shell doit rechercher le nom des commandes données par l’utilisateur.

CDPATH : chemin de recherche pour la commande cd.

LOGNAME ou NAME : nom de l’utilisateur.

TERM : type de terminal (cf. chapitre sur Le répertoire /etc - /etc/ttys).

HOME : nom du répertoire par défaut (répertoire personnel).

MAIL : nom du fichier utilisé par les commandes de courrier électronique.

PS1 : chaîne de caractères utilisée par le shell pour solliciter l’introduction de commande (par défaut il est généralement à $).

PS2 : chaîne de caractères utilisée par le shell pour demander de compléter une commande.

TZ : Time Zone (heure local).