gpt4 book ai didi

go - 如何在OSX上获取os env变量?

转载 作者:行者123 更新时间:2023-12-01 22:17:38 25 4
gpt4 key购买 nike

OSX Catalina和zsh作为我的终端。

我有一个命令来启动psql连接:

db, err := pgx.Connect(context.Background(), os.Getenv("PSQL_URL"))

但是 os.Getenv("PSQL_URL")是一个空字符串。

如何确保go程序可以读取我的环境变量?

在终端中,如果我 echo $PSQL_URL我得到正确的 postgresql://aod:toto@localhost/dbname
如果我在运行main.go之前导出 PSQL_URL="postgresql://aod:toto@localhost/dbname",则可以正常运行

我正在寻找一种持久的方法。

更新

我的错误如下:
我设置的 ~/.zhsrc内部 PSQL_URL="postgresql://aod:toto@localhost
代替
export PSQL_URL="postgresql://aod:toto@localhost"

最佳答案

这是读取go中的env变量的正确方法。

我想到的唯一一件事就是您有两个不同的终端 session 。在其中一个中,您设置了PSQL_URL(正在运行该程序中的echo),在另一个中则未设置(您正在此处运行go应用程序)。

编辑

现在使用您的注释和Felix进行了扩展,这里的问题是您导出了一个变量,但没有使其成为永久变量,因此在启动新 session 时该变量不存在。您需要做的是编辑~/.zshrc并添加export PSQL_URL=foo,这样,每当您开始新的终端 session 时,变量都会被加载。

关于go - 如何在OSX上获取os env变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58421829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com