os.ExpandEnv în Go

Înlocuiește $NUME și ${NUME} dintr-un text cu valorile variabilelor de mediu.

Sintaxă
func ExpandEnv(s string) string

Ce face os.ExpandEnv

os.ExpandEnv caută în text $NUME sau ${NUME} și le înlocuiește cu valoarea variabilei de mediu, ca un shell. Variabilele care lipsesc devin text gol.

Este echivalent cu os.Expand(s, os.Getenv). Formele de shell precum ${NUME:-implicit} nu sunt înțelese. Acoladele sunt necesare când după nume urmează litere: ${AN}_raport.

Parametri

Parametru Descriere
s Textul cu variabile.

Ce returnează

Textul cu variabilele înlocuite.

Exemple

Exemplul 1: Mesaj cu variabile

package main

import (
    "fmt"
    "os"
)

func main() {
    os.Setenv("NUME", "Ana")
    os.Setenv("MESAJE", "3")
    fmt.Println(os.ExpandEnv("Salut, $NUME! Ai ${MESAJE} mesaje noi."))
}

Rezultat

Salut, Ana! Ai 3 mesaje noi.

Exemplul 2: Căi în fișiere de configurare

package main

import (
    "fmt"
    "os"
)

func main() {
    os.Setenv("DATE", "/srv/magazin")
    os.Setenv("AN", "2025")
    config := "fisier_log = ${DATE}/jurnal/${AN}_comenzi.log\nnecunoscut = [$LIPSA]"
    fmt.Println(os.ExpandEnv(config))
}

Rezultat

fisier_log = /srv/magazin/jurnal/2025_comenzi.log
necunoscut = []

Greșeli frecvente

  • Scrii $AN_raport și te aștepți la 2025_raport. Go caută variabila AN_raport; scrie ${AN}_raport.
  • Folosești ExpandEnv pe text venit de la utilizatori. Poate afișa valori secrete din mediu (parole, chei).

Comenzi înrudite

  • os.Expand: Înlocuiește $nume și ${nume} dintr-un text folosind o funcție proprie care dă valoarea fiecărui nume.
  • os.Getenv: Returnează valoarea unei variabile de mediu sau textul gol dacă variabila nu există.
  • os.Setenv: Setează o variabilă de mediu pentru programul curent; Unsetenv o șterge.