Go by Example: Environment Variables

Las variables de entorno son un mecanismo universal para transmitir información de configuración a programas Unix. Veamos cómo establecer, obtener y listar variables de entorno.

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

Para establecer un par clave/valor, usa os.Setenv. Para obtener un valor para una clave, usa os.Getenv. Esto devolverá una cadena vacía si la clave no está presente en el entorno.

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

Usa os.Environ para listar todos los pares clave/valor en el entorno. Esto devuelve una lista de cadenas en la forma KEY=value. Puedes usar strings.SplitN para obtener la clave y el valor. Aquí imprimimos todas las claves.

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

Al ejecutar el programa, vemos que recoge el valor para FOO que establecimos en el programa, pero que BAR está vacío.

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

La lista de claves en el entorno dependerá de tu máquina en particular.

TERM_PROGRAM
PATH
SHELL
...
FOO

Si establecemos BAR en el entorno primero, el programa en ejecución recoge ese valor.

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

Siguiente ejemplo: Logging.