登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-24 08:22:16 105浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《使用“os”包设置后未在终端会话上设置环境变量》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

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

package main

import (
    "os"
    "fmt"
)

func main() {
    _ = os.Setenv("FOO", "BAR")
    fmt.Println(os.Getenv("FOO"))
}

运行这个文件:

>$ go run file.go
BAR

fmt.Println调用打印BAR正确,但是我希望这个 env 变量也可以在我的会话中设置,但是:

>$ echo $FOO

>$

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

正确答案

创建新进程时,会复制父进程的环境。新进程中对环境的更改不会影响父进程。您必须在修改环境后让您的程序启动一个 shell。

以上就是《使用“os”包设置后未在终端会话上设置环境变量》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表