Golang 中 .env 文件加载

.env 是一个用于存储环境变量的文件,通常用于存储应用程序的配置信息。

通过使用 .env 文件,我们可以将这些敏感信息从代码中分离出来,从而提高应用程序的安全性和可维护性。

.env 支持多种格式和特性,具体示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# k=v 格式
var1=val1
# shell 格式
export var2=val2
# yaml 格式
var3: var3

# 等号两边不要空格(有也能解析,但规范是不加)
# 变量值只支持字符串,两边的空格会自动trim
var4=1234 5678  
# 双引号支持转义
var5="hello\nworld"
# 双引号支持多行
var6="hello
world2"
# 单引号支持多行,但不支持转义
var7='hello
world3'

加载方式也特别简单,只需引入 godotenv 库后,使用 Load 方法即可。

加载后使用 os.Getenv 来获取变量。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
package main

import (
	"fmt"
	"os"

	"github.com/joho/godotenv"
)

func main() {
	godotenv.Load(".env")
	fmt.Println(os.Getenv("var1"))
	fmt.Println(os.Getenv("var2"))
	fmt.Println(os.Getenv("var3"))
	fmt.Println(os.Getenv("var4"))
	fmt.Println(os.Getenv("var5"))
	fmt.Println(os.Getenv("var6"))
	fmt.Println(os.Getenv("var7"))
}

输出如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ go run .
val1
val2
var3
1234 5678
hello
world
hello
world2
hello
world3
$
updatedupdated2026-05-042026-05-04