透過範例認識 Go:環境變數

環境變數是通用機制,用於傳遞組態資訊給 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
...

下一個範例:記錄