En tant qu’administrateur système, vous connaissez probablement l’importance des variables d’environnement dans Bash.
Les variables d’environnement sont utilisées pour définir des variables qui auront un impact sur la façon dont les programmes s’exécuteront.
Dans Bash, les variables d’environnement définissent beaucoup de choses différentes : votre éditeur par défaut, votre nom d’utilisateur actuel ou le fuseau horaire actuel.
Plus important encore, les variables d’environnement peuvent être utilisées dans les scripts Bash afin de modifier le comportement de vos scripts.
Dans ce tutoriel, nous allons voir comment vous pouvez facilement définir des variables d’environnement dans Bash.
Table des matières
Définir des variables d’environnement dans Bash
La façon la plus simple de définir des variables d’environnement dans Bash est d’utiliser le mot-clé « export » suivi du nom de la variable, d’un signe égal et de la valeur à attribuer à la variable d’environnement.
Par exemple, pour attribuer la valeur « abc » à la variable « VAR », vous écrirez la commande suivante
$ export VAR=abc
Si vous voulez avoir des espaces dans votre valeur, comme « ma valeur » ou « Linus Torvalds », vous devrez entourer votre valeur de guillemets doubles.
$ export VAR="my value"$ export VAR="Linus Torvalds"
Pour afficher de votre variable d’environnement, vous devez faire précéder la variable du signe dollar.
$ echo $VARLinus Torvalds
De même, vous pouvez utiliser la commande « printenv » afin d’imprimer la valeur de votre variable d’environnement.
Cette fois, vous n’avez pas besoin de la faire précéder d’un signe dollar.
$ printenv VARLinus Torvalds
Définir des variables à l’aide de l’interpolation Bash
Dans certains cas, vous pouvez avoir besoin de définir une variable d’environnement spécifique au résultat d’une commande sur votre serveur.
Pour ce faire, vous aurez besoin de l’interpolation Bash, également appelée substitution de paramètres.
Disons par exemple que vous souhaitez stocker la valeur de votre instance actuelle du shell dans une variable nommée MYSHELL.
Pour définir une variable d’environnement à l’aide de la substitution de paramètres, utilisez le mot-clé « export » et faites en sorte que la commande soit entourée de parenthèses fermantes précédées du signe dollar.
$ export VAR=$(<bash command>)
Au vu de notre exemple précédent, si vous voulez avoir la variable d’environnement « SHELL » dans une nouvelle variable nommée « MYSHELL », vous écrirez
$ export MYSHELL=$(echo $SHELL)
Félicitations, vous avez réussi à créer votre première variable d’environnement dans Bash !
Définir des variables d’environnement permanentes dans Bash
Lorsque vous attribuez une valeur à une variable à l’aide de « export » dans un shell, les modifications ne sont pas persistantes lors des redémarrages ou dans d’autres shells.
Pour définir une variable d’environnement permanente dans Bash, vous devez utiliser la commande « export » et l’ajouter soit à votre fichier « .bashrc » (si cette variable ne concerne que vous), soit au fichier /etc/environment si vous souhaitez que tous les utilisateurs disposent de cette variable d’environnement.
$ nano /home/user/.bashrc# Content of the .bashrc fileexport VAR="My permanent variable"
Pour que les modifications soient appliquées à votre session en cours, vous devrez sourcer votre fichier .bashrc.
$ source .bashrc
Maintenant, vous pouvez vérifier la valeur de votre variable d’environnement dans tous les shells que vous voulez.
$ printenv VAR
Cette variable sera créée sur chaque instance de shell pour l’utilisateur actuel.
Cependant, si vous l’ajoutez au fichier « /etc/environnement », la variable d’environnement sera définie pour tous les utilisateurs de votre système.
$ nano /etc/environment# Content of the environment fileexport GLOBAL="This is a global variable"
Après avoir sourcé le fichier, les variables d’environnement seront définies pour chaque utilisateur de votre hôte.
$ source /etc/environment$ echo $GLOBAL
Awesome, vous avez réussi à définir une variable d’environnement globale sur votre serveur !
Conclusion
Dans ce tutoriel, vous avez appris comment vous pouvez facilement définir des variables d’environnement en Bash à l’aide de la commande export.
Vous avez également appris que les modifications ne sont pas rendues permanentes tant que vous ne les ajoutez pas à votre :
- .bashrc : si vous voulez que la variable soit uniquement pour l’utilisateur actuel connecté;
- /etc/environment : si vous voulez que la variable soit partagée par tous les utilisateurs du système.
Si vous êtes intéressé par l’administration système Linux, ou par Bash, nous avons une section complète qui lui est dédiée sur le site, alors n’hésitez pas à la consulter !
.