使用“os”包设置环境变量后,未在终端会话上设置环境变量

我有这个代码,我只想设置一个环境变量:


package main


import (

    "os"

    "fmt"

)


func main() {

    _ = os.Setenv("FOO", "BAR")

    fmt.Println(os.Getenv("FOO"))

}

运行这个文件:


>$ go run file.go

BAR

该fmt.Println呼叫打印BAR正常,但后来我预计这个环境变量在我的会话但是被设置为好,:


>$ echo $FOO


>$

什么都没有$FOO,是空的。这是预期的行为吗?如果是这样,我怎样才能让这个 env 变量在我的会话中坚持使用这样的go程序设置它?


森林海
浏览 158回答 2
2回答

翻阅古今

创建新进程时,会复制父进程的环境。新进程中对环境的更改不会影响父进程。在修改环境后,您必须让您的程序启动一个 shell。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go