Le Go par l'exemple: Variables d'environnement

Les variables d’environnement sont un mécanisme universel pour fournir des informations de configuration à des programmes Unix. Regardons comment créer, récupérer et lister des variables d’environnement.

package main
import "os"
import "strings"
import "fmt"

Pour créer une paire clé/valeur, on utilise os.Setenv. Pour récupérer une valeur à partir d’une clé, il y a os.Getenv. Elle renvoie une chaîne vide si la clé n’est pas présente dans l’environnement.

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

os.Environ permet de lister toutes les paires clé/valeur de variables d’environnement. Elle renvoie une slice de string sous la forme CLE=valeur. On peut obtenir les clés et valeurs avec strings.Split. Ici, on affiche toutes les clés.

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

Exécuter le programme montre que nous choisissons une valeur pour FOO, mais que BAR est vide.

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

La liste des clés de l’environnement dépendra de votre machine.

TERM_PROGRAM
PATH
SHELL
...

So nous affectons BAR dans l’environnement avant de lancer le programme, il récupérera sa valeur.

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

Exemple suivant: Lancer des processus.