Go by Example: 環境変数

環境変数は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
...

次の例: ロギング