Bonjour
j'ai du mal à faire la différence entre
* variables locales du shell
* variables d'environnement

Je lis ce qui suit dans WIKIPEDIA

Sous Unix et Linux, les shells utilisent deux types de variables, utilisant la même syntaxe :

* Des variables locales au shell,
* Des variables d'environnement transmises aux applications lancées par le shell.

Ces dernières sont accédées comme des variables locales et doivent être exportées avec la commande export (pour bash), ou utiliser la commande setenv (csh)
Je fais le test suivant dans une fenêtre terminal de mon environnement graphique dans RHEL 5.3

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
[dom@vnilux ~]$ TEST_VAR="toto"
[dom@vnilux ~]$ echo $TEST_VAR
toto
[dom@vnilux ~]$
TEST_VAR est une variable locale du terminal (du shell en cours). Si je ferme le terminal par exit, et que j'ouvre à nouveau le terminal, TEST_VAR n'est plus définie; pour moi donc, c'est (c'était) une variable locale au shell

Je fais le test suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
[dom@vnilux ~]$ TEST_VAR="toto"
[dom@vnilux ~]$ echo $TEST_VAR
toto
[dom@vnilux ~]$ export TEST_VAR
[dom@vnilux ~]$
Je ne vois pas la différence qu'apporte la commande export; la variable TEST_VAR reste une variable "temporaire" du shell (qui n'est plus définie si on ferme et qu'on ré-ouvre un nouveau terminal), puisque l'export n'a pas été fait en dur dans les fichiers de configuration.
Est ce que le fait de faire la commande export a transformé la variable locale TEST_VAR en variable d'environnement ? si c'est le cas, je ne vois pas concrètement ce que cela apporte de plus

Merci par avance des réponses