go - 如何设置持久的环境变量

标签 go environment-variables

我正在尝试使用 Go OS 在我的机器上设置一些环境变量

    err := os.Setenv("DBHOST", dbHostLocal)
    if err != nil {
        log.Fatalf("err %v", err)
    }

该变量似乎可用于 Go 程序,但一旦我退出/终止 Go 进程,该变量就不再可用。我想知道是否可以永久设置这些变量。原因是我想为本地和开发环境创建一个带有配置文件(数据库名称等)的“设置”文件,这样我就可以在没有任何设置的情况下进行切换……只需运行一次 setup.go .

最佳答案

短:这是不可能的。您无法更改父进程的环境。只能自己改变,传给 child 。

您应该做的是维护一个配置文件。 那里有很多 go 配置库:ini、yaml 等。

如果您的程序更改了配置,请在每次更改后或每隔一段时间或在进程退出时将其保存到磁盘。

关于go - 如何设置持久的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938877/

相关文章:

go - 实现 tus-file-uploader 时 http.handle 和 gorilla.mux 的区别

go - 从go中的另一个文件导入 map 变量

linux - 命令未找到,没有 root 权限

python - 如何使用 python 在 Mac OS X 中获取环境变量?

linux - 字符串中带有空格的环境变量 - 如何从/proc/pid/environ 中使用它们

environment-variables - Doxygen for Windows 中 DOT 路径的环境变量

shell - 无法使用exec在Go中为docker运行netstat

go - 如何为所有页面提供静态文件,而不仅仅是少数几个

go - 如何打破Golang的循环

windows - 访问 Windows 服务器上的特定用户环境变量