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