Modification de la variable d’environnement sous UNIX

Si nous modifions une variable d’environnement dans un processus, la modification est-elle également reflétée dans d’autres processus en cours d’exécution?

Chaque processus a sa propre copie des variables d’environnement. Les processus enfants peuvent hériter des variables d’environnement de leurs processus parents, mais il s’agit de copies, qui ne sont donc pas modifiées si les versions du parent sont modifiées.

Non. La modification est transmise uniquement aux processus enfants et uniquement à ceux lancés après la modification. De Wikipedia :

Dans tous les systèmes de type Unix et Unix, chaque processus possède son propre ensemble privé de variables d’environnement. Par défaut, lorsqu’un processus est créé, il hérite d’un environnement dupliqué de son processus parent, à l’exception des modifications explicites apscopes par le parent lorsqu’il crée l’enfant.

Une exception est lorsque vous appelez un script shell via le . *filename* [*args*] . *filename* [*args*] ou source *filename* [*args*] syntaxe. Toute modification apscope à l’environnement dans ces scripts de sous-processus est également reflétée dans l’environnement d’origine.