.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
$
|