os.GetEnv()在设置env变量后不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了os.GetEnv()在设置env变量后不起作用相关的知识,希望对你有一定的参考价值。

我有这种情况不工作的功能

os.GetEnv()

我在我的系统ADDR =“192.168.1.100”trought文件.bashrc和.profile中设置了一个变量。所以,如果我打开终端并输入以下命令,我会得到很好的结果

$ echo $ ADDR

192.168.1.100

为什么在下面非常简单的程序我得到错误如果变量在系统中设置正确?

func main(){
    addr := os.Getenv("ADDR")
    if addr == "" {
        return errors.New("missing addres")
    }
}

我也多次重启IDE。试着再次写入终端

$ env ADDR =“192.168.1.100”

但仍然有同样的效果。

答案

我认为问题可能是你没有导出变量,所以子进程(即你的ide,shell,没有得到它)​​。

ADDR="192.168.1.100" go run main.go

要么

export ADD="192.168.1.100"
go run main.go
另一答案

如果你去程序是另一个应用程序,如Mac中的程序,然后使用以下来设置它:

sudo launchctl setenv <env var> <env var value>
另一答案

你可以将你的env变量放在.env文件中,并在运行它时将其导出:

出口less .env | xargs;去运行cmd / main.go

以上是关于os.GetEnv()在设置env变量后不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Python os.getenv() 在设置 Windows 环境变量时返回 None

openresty中的set_by_lua&os.getenv:alpine docker container

env 参数在 system2 中不起作用?

python os.getenv 看不到 ~/.profile 中定义的变量

python os模块常用方法总结

代码在Flask中返回render_template后不起作用