问题:
使用“设置环境变量后Go 程序中的“os”包,在当前终端中仍然无法访问session.
详细信息:
使用 os.Setenv("FOO", "BAR") 设置环境变量的 Go 程序允许使用 fmt.Println 在程序中打印变量(os.Getenv("FOO")),但在终端中使用 echo $FOO 查询时该变量仍然不存在
答案:
新进程继承其父进程的环境。对子进程内环境的修改不会影响父进程的环境。因此,在给定的场景下,在 Go 程序中设置环境变量不会改变终端会话的环境。
解决方案:
让环境变量持久化在终端会话,修改环境后需要启动shell。该解决方案可以使用多种方法来实现,包括:
通过采用其中一种方法,您可以确保 Go 程序中设置的环境变量在终端会话中可用。
以上是为什么通过 Go 的 `os` 包设置的环境变量不保留在终端会话中?的详细内容。更多信息请关注PHP中文网其他相关文章!