Maison >développement back-end >Golang >Pourquoi les variables d'environnement définies via le package `os` de Go ne persistent-elles pas dans la session de terminal ?
Problème :
Après la définition d'une variable d'environnement à l'aide de " os" dans un programme Go, il reste inaccessible dans le terminal actuel session.
Détails :
Un programme Go définissant une variable d'environnement à l'aide de os.Setenv("FOO", "BAR") permet d'imprimer la variable dans le programme à l'aide de fmt.Println (os.Getenv("FOO")), mais la variable reste absente lorsqu'elle est interrogée à l'aide de echo $FOO dans le terminal session.
Réponse :
Les nouveaux processus héritent de l'environnement de leur processus parent. Les modifications apportées à l'environnement au sein d'un processus enfant n'affectent pas l'environnement du processus parent. Par conséquent, dans le scénario donné, la définition de la variable d'environnement dans le programme Go ne modifie pas l'environnement de la session du terminal.
Solution :
Pour rendre la variable d'environnement persistante dans le session de terminal, vous devez démarrer un shell après avoir modifié l'environnement. Cette solution peut être implémentée en utilisant diverses approches, notamment :
En adoptant l'une de ces approches, vous pouvez vous assurer que la variable d'environnement définie dans le programme Go devient disponible dans la session du terminal.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!