我有这段代码,我只想设置一个环境变量:
package main
import (
"os"
"fmt"
)
func main() {
_ = os.Setenv("FOO", "BAR")
fmt.Println(os.Getenv("FOO"))
}
运行这个文件:
>$ go run file.go
BAR
fmt.Println
调用正确地打印了 BAR
,但是我希望这个环境变量也能在我的 session 中设置,但是:
>$ echo $FOO
>$
$FOO
上没有任何内容,它是空的。这是预期的行为吗?如果是这样,我怎样才能使这个 env 变量在我的 session 中持续存在,并使用这样的 go
程序设置它?
最佳答案
创建新进程时,会复制父进程的环境。新进程中环境的改变不会影响父进程。您必须让程序在修改环境后启动 shell。
关于go - 使用 "os"包设置环境变量后,未在终端 session 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368392/