在线文档  >   Golang练习   >   环境变量

环境变量是一种通用机制,用于向 Unix 程序传递配置信息。让我们看看如何设置、获取和列出环境变量。

package main

import (
    "fmt"
    "os"
    "strings"
)

func main() {

    // 使用 `os.Setenv` 设置键/值对。使用 `os.Getenv` 获取键的值。
    // 如果键不存在于环境中,则返回空字符串。
    os.Setenv("FOO", "1")
    fmt.Println("FOO:", os.Getenv("FOO"))
    fmt.Println("BAR:", os.Getenv("BAR"))

    // 使用 `os.Environ` 列出环境中的所有键/值对。
    // 这将返回一个字符串切片,形式为 `KEY=value`。
    // 可以使用 `strings.SplitN` 将其拆分为键和值。这里我们打印所有的键。
    fmt.Println()
    for _, e := range os.Environ() {
        pair := strings.SplitN(e, "=", 2)
        fmt.Println(pair[0])
    }
}

运行结果如下:

# 
运行这个程序,显示我们在程序中设置的 `FOO` 的值, 然而没有设置的 `BAR` 是空的。
$ go run environment-variables.go
FOO: 1
BAR: 

# 键的列表是由你的电脑情况而定的。
TERM_PROGRAM
PATH
SHELL
...
FOO

# 如果我们在运行前设置了 `BAR` 的值,那么运行程序将会获取到这个值。
$ BAR=2 go run environment-variables.go
FOO: 1
BAR: 2
...