サンプルで学ぶ Go 言語:Environment Variables

環境変数設定情報を Unix 上で動くプログラムに伝える一般的な仕組みである。 環境変数を読んだり、書いたりしてみよう。

package main
import "os"
import "strings"
import "fmt"
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.Split を使って、このスライスからキーと値を取り出せる。 ここではすべてのキーを表示している。

    fmt.Println()
    for _, e := range os.Environ() {
        pair := strings.Split(e, "=")
        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
...

次の例:Spawning Processes