Go by Example: Environment Variables

環境変数 は、設定情報を 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
...

もし環境変数 BAR を先に設定すると、 実行したプログラムはその値を取得できます。

$ BAR=2 go run environment-variables.go
FOO: 1
BAR: 2
...

Next example: HTTP Clients.