Go в примерах: Переменные окружения (Environment Variables)

Переменные окружения это универсальный механизм для передачи конфигурации в UNIX программы. Давайте научимся устанавливать, считывать и просматривать переменные окружения в Go.

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, чтобы вывести все существующие переменные и их значения. Эта функция возвращает срез строк в формате КЛЮЧ=значение. Вы можете 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).