0 Votes

Variables d’environnement

Modifié par john le 2026/09/20 20:04

Présentation

Les variables d’environnement sont des paires nom=valeur utilisées par le shell et les applications.
Elles stockent des informations de configuration, comme la langue, le nom d’utilisateur, le chemin de recherche des commandes, etc.

Elles sont visibles et modifiables par l’utilisateur courant, et peuvent être temporaires ou permanentes.


Quelques variables courantes

VariableDescription
$USERNom de l’utilisateur connecté
$HOMERépertoire personnel
$PATHListe des dossiers contenant les commandes
$LANGLangue et encodage utilisés
$SHELLShell utilisé (souvent /bin/bash)

Afficher les variables existantes

printenv
# ou
env
# ou pour une variable spécifique :
echo "$HOME"

Définir une variable temporaire

NOM=John
echo "$NOM"

Cela ne sera valable que pour le shell courant.


Rendre une variable accessible à un script ou un sous-processus

Il faut l’exporter :

export NOM=John
./mon_script.sh

Le script pourra utiliser $NOM.


Définir une variable de façon permanente

Ajouter la ligne dans l’un de ces fichiers :

  • ~/.bashrc → pour les shells interactifs
  • ~/.profile ou ~/.bash_profile → à la connexion

Exemple :

export EDITOR=nano
export PATH="$PATH:$HOME/bin"

Puis recharger avec :

source ~/.bashrc

Astuce : tester si une variable existe

if [ -z "$MON_VAR" ]; then
 echo "MON_VAR n'est pas définie"
fi

En mode strict (set -u), une variable non définie interrompt le script. Prévoir une valeur par défaut :

echo "${MON_VAR:-valeur_par_defaut}"

Bonnes pratiques

  • Utiliser des majuscules pour les noms (convention POSIX)
  • Éviter les noms trop courts (T, X, D) qui pourraient entrer en conflit
  • Toujours entourer les variables de guillemets ("$VAR") dans les scripts pour éviter les bugs avec des espaces
  • Ne jamais mettre de mot de passe ni de jeton dans une variable exportée : elle est lisible par tous les processus de la session. Préférer un fichier réservé à root, chargé avec . au moment voulu

Liens internes