Variables Denvironnement

Variables d’environnement #

// Les [variables d'environnement](https://fr.wikipedia.org/wiki/Variable_d%27environnement) sont un mécanisme universel pour fournir des [informations de configuration à des programmes Unix](https://12factor.net/fr/config). Regardons comment créer, récupérer et lister des variables d'environnement.

package main

import "os"
import "strings"
import "fmt"

func main() {
    // 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.
    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
...