Go by Example - IT: Variabili d'Ambiente

Le variabili d’ambiente sono un sistema universale per dare informazioni di configurazione ai programmi UNIX. Diamo un occhiata a come ottenere, impostare e elencare le variabili d’ambiente.

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

Per impostare una variabile d’ambiente tramite una coppia chiave/valore os.Setenv. Per ottenere il valore di una chiave, usa os.Getenv. Questo restituirà una stringa vuota nel caso la chiave non sia presente nell’ambiente.

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

Usa os.Environ per elencare tutte le coppie chiave/valore nell’ambiente. Questo restituirà una slice di stringhe nella forma CHIAVE=valore. Puoi usare strings.Split sulle stringhe per ottenere una slice contente al primo posto la chiave e al secondo il valore. Qui stampiamo tutte le chiavi.

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

Eseguendo il programma verrà stampato il valore di FOO, impostato da noi nel sorgente, mentre il valore di BAR sarà vuoto.

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

La lista di chiavi nell’ambiente dipenderà dal tuo sistema

TERM_PROGRAM
PATH
SHELL
...

Se prima di eseguire il programma assegnamo un valore a BAR, allora il programma lo stamperà.

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

Prossimo esempio: Eseguire Sottoprocessi.