Go by Example: Environment Variables

Muhit o’zgaruvchilari Unix dasturlariga konfiguratsiya ma’lumotlarini yetkazish uchun universal mexanizmdir. Keling, muhit o’zgaruvchilarini qanday o’rnatish, olish va ro’yxatlashni ko’rib chiqaylik.

package main
import (
    "fmt"
    "os"
    "strings"
)
func main() {

Kalit/qiymat juftligini o’rnatish uchun os.Setenv dan foydalaning. Kalit uchun qiymatni olish uchun os.Getenv dan foydalaning. Agar kalit muhitda mavjud bo’lmasa, bu bo’sh satrni qaytaradi.

    os.Setenv("FOO", "1")
    fmt.Println("FOO:", os.Getenv("FOO"))
    fmt.Println("BAR:", os.Getenv("BAR"))

Muhitdagi barcha kalit/qiymat juftliklarini ro’yxatlash uchun os.Environ dan foydalaning. Bu KEY=value ko’rinishidagi satrlar slice’ini qaytaradi. Kalit va qiymatni olish uchun ularni strings.SplitN qilishingiz mumkin. Bu yerda biz barcha kalitlarni chop etamiz.

    fmt.Println()
    for _, e := range os.Environ() {
        pair := strings.SplitN(e, "=", 2)
        fmt.Println(pair[0])
    }
}

Dasturni ishga tushirish dasturda o’rnatgan FOO qiymatini qabul qilishimizni, ammo BAR bo’sh ekanligini ko’rsatadi.

$ go run environment-variables.go
FOO: 1
BAR: 

Muhitdagi kalitlar ro’yxati sizning aniq mashinangizga bog’liq bo’ladi.

TERM_PROGRAM
PATH
SHELL
...
FOO

Agar avval muhitda BAR ni o’rnatsak, ishlayotgan dastur o’sha qiymatni qabul qiladi.

$ BAR=2 go run environment-variables.go
FOO: 1
BAR: 2
...

Keyingi misol: .