Variabili d’Ambiente
#
// Le [variabili d'ambiente](https://it.wikipedia.org/wiki/Variabile_d%27ambiente)
// 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
...