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
...

Далее: .