登录
首页 >  Golang >  Go问答

在 golang 中如何处理 .env 文件和操作系统环境变量

来源:stackoverflow

时间:2024-03-24 21:06:25 461浏览 收藏

在 Go 中,使用 `.env` 文件和操作系统环境变量时,系统优先在操作系统环境变量中查找给定的键,然后才会检查 `.env` 文件。要解决此问题,可以使用 `github.com/joho/godotenv` 中的 `read()` 函数将 `.env` 文件加载到映射数据结构中。这允许你分别访问 `.env` 文件和操作系统环境变量中的值。

问题内容

err := godotenv.Load(".env")
if err != nil { panic(err.Error()) }

shell := os.Getenv("SHELL")
fmt.Println(shell)

我在 .env 文件中设置了 shell=/bin/zsh ,但操作系统似乎首先在操作系统环境变量列表中查找给定的键,然后检查 .env 文件。有没有办法将这两者分开?


正确答案


是的,有一种方法可以解决这个问题。 github.com/joho/godotenv 有一个名为 read() 的函数。您可以将 .env 文件加载到地图数据结构中。

envFile, _ := godotenv.Read(".env")

envFileShell = envFile["SHELL"]
fmt.Println(envFileShell) // will be /bin/zsh (what you set in .env file)

osShell := os.Getenv("SHELL") 
fmt.Println(osShell) // will be whatever it is set in your operating system

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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