0 Votes

Code source wiki de Variables

Version 4.1 par john le 2026/09/20 19:52

Masquer les derniers auteurs
john 1.1 1 {{toc/}}
2
3 == Présentation ==
john 2.1 4
john 3.1 5 Les **variables d’environnement** sont des paires ##nom=valeur## utilisées par le shell et les applications.
john 1.1 6 Elles stockent des **informations de configuration**, comme la langue, le nom d’utilisateur, le chemin de recherche des commandes, etc.
7
8 Elles sont visibles et modifiables par l’utilisateur courant, et peuvent être temporaires ou permanentes.
9
john 3.1 10 ----
john 1.1 11
12 == Quelques variables courantes ==
13
john 3.1 14 |=Variable|=Description
15 |##$USER##|Nom de l’utilisateur connecté
16 |##$HOME##|Répertoire personnel
17 |##$PATH##|Liste des dossiers contenant les commandes
18 |##$LANG##|Langue et encodage utilisés
19 |##$SHELL##|Shell utilisé (souvent ##/bin/bash##)
john 1.1 20
john 3.1 21 ----
john 2.1 22
john 1.1 23 == Afficher les variables existantes ==
john 2.1 24
john 1.1 25 {{code language="bash"}}
26 printenv
27 # ou
28 env
29 # ou pour une variable spécifique :
john 3.1 30 echo "$HOME"
john 1.1 31 {{/code}}
32
john 3.1 33 ----
john 1.1 34
35 == Définir une variable temporaire ==
john 2.1 36
john 1.1 37 {{code language="bash"}}
38 NOM=John
john 3.1 39 echo "$NOM"
john 1.1 40 {{/code}}
41
42 Cela ne sera valable **que pour le shell courant**.
43
john 3.1 44 ----
john 1.1 45
46 == Rendre une variable accessible à un script ou un sous-processus ==
john 2.1 47
john 1.1 48 Il faut l’**exporter** :
49
50 {{code language="bash"}}
51 export NOM=John
52 ./mon_script.sh
53 {{/code}}
54
john 3.1 55 Le script pourra utiliser ##$NOM##.
john 1.1 56
john 3.1 57 ----
john 1.1 58
59 == Définir une variable de façon permanente ==
john 2.1 60
john 3.1 61 Ajouter la ligne dans l’un de ces fichiers :
john 1.1 62
john 3.1 63 * ##~~/.bashrc## → pour les shells interactifs
64 * ##~~/.profile## ou ##~~/.bash_profile## → à la connexion
john 2.1 65
john 1.1 66 Exemple :
67
john 3.1 68 {{code language="bash"}}
69 export EDITOR=nano
70 export PATH="$PATH:$HOME/bin"
71 {{/code}}
john 1.1 72
john 3.1 73 Puis recharger avec :
john 1.1 74
john 3.1 75 {{code language="bash"}}
john 4.1 76 source ~/.bashrc
john 3.1 77 {{/code}}
78
79 ----
80
john 1.1 81 == Astuce : tester si une variable existe ==
john 2.1 82
john 1.1 83 {{code language="bash"}}
84 if [ -z "$MON_VAR" ]; then
85 echo "MON_VAR n'est pas définie"
86 fi
87 {{/code}}
88
john 3.1 89 En mode strict (##set -u##), une variable non définie interrompt le script. Prévoir une valeur par défaut :
john 1.1 90
john 3.1 91 {{code language="bash"}}
92 echo "${MON_VAR:-valeur_par_defaut}"
93 {{/code}}
94
95 ----
96
john 1.1 97 == Bonnes pratiques ==
john 2.1 98
john 1.1 99 * Utiliser **des majuscules** pour les noms (convention POSIX)
john 3.1 100 * Éviter les noms trop courts (##T##, ##X##, ##D##) qui pourraient entrer en conflit
101 * Toujours entourer les variables de **guillemets** (##"$VAR"##) dans les scripts pour éviter les bugs avec des espaces
102 * 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
john 1.1 103
john 3.1 104 ----
john 1.1 105
106 == Liens internes ==
john 2.1 107
john 3.1 108 * [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]
john 2.1 109 * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]