Променливите на обкръжението (работната среда)1 са всеобщ способ за предаване на сведнения за настройки в програмите в Юникс2. Да видим как се задават, вземат и извеждат като списък променливите на средата.
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 връща отрязък от низове, предствляващи двойки
КЛЮЧ=стойност. Можете да ползвате 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:
Списъкът с ключове от средата може да е различен на всяка машина.
SHELL
SESSION_MANAGER
PERLBREW_ROOT
QT_ACCESSIBILITY
COLORTERM
...
FOO
Ако пък първо зададем стойност за BAR, програмата ни ще изведе наличната стойност.
$ BAR=2 go run environment-variables.go
FOO: 1
BAR: 2
...
Следващ пример: Отчети.