Функция os.Unsetenv

Функция os.Unsetenv удаляет переменную окружения. В единственный параметр она принимает имя переменной в виде строки. Если переменная не существует, функция не выполняет никаких действий и не возвращает ошибку. В случае успешного удаления функция возвращает nil, а если произошла ошибка - возвращает ее описание.

Синтаксис

goos.Unsetenv(key)

Пример

Давайте установим переменную окружения, затем удалим ее и проверим результат:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  os.Setenv("MY_VAR", "test-value")
  fmt.Println("Before unset:", os.Getenv("MY_VAR"))

  err := os.Unsetenv("MY_VAR")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println("After unset:", os.Getenv("MY_VAR"))
}

Результат выполнения кода:

go"Before unset: test-value"
"After unset: "

Пример

Давайте попробуем удалить несуществующую переменную окружения:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  err := os.Unsetenv("NON_EXISTENT_VAR")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println("Variable removed successfully")
}

Результат выполнения кода:

go"Variable removed successfully"

Пример

Давайте проверим, что удаление переменной окружения влияет на дочерние процессы:

gopackage main

import (
  "fmt"
  "os"
  "os/exec"
)

func main() {
  os.Setenv("APP_CONFIG", "production")
  fmt.Println("Parent env:", os.Getenv("APP_CONFIG"))

  err := os.Unsetenv("APP_CONFIG")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  cmd := exec.Command("env")
  output, _ := cmd.Output()
  fmt.Println("Child env contains APP_CONFIG:", len(os.Getenv("APP_CONFIG")) > 0)
}

Результат выполнения кода:

go"Parent env: production"
"Child env contains APP_CONFIG: false"

Смотрите также

  • функцию os.Getenv,
    которая получает значение переменной окружения
  • функцию os.Setenv,
    которая устанавливает значение переменной окружения
  • функцию os.LookupEnv,
    которая проверяет существование переменной окружения
  • функцию os.Clearenv,
    которая удаляет все переменные окружения