Функция os.Environ

Функция os.Environ возвращает срез строк, содержащий все переменные окружения текущего процесса. Каждый элемент среза представляет собой строку в формате "KEY=value". Функция не принимает никаких параметров и возвращает []string. Важно отметить, что возвращаемый срез является копией переменных окружения на момент вызова функции, поэтому последующие изменения в окружении (например, через os.Setenv) не повлияют на уже полученный срез.

Синтаксис

goos.Environ() []string

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  env := os.Environ()
  for _, e := range env {
    fmt.Println(e)
  }
}

Результат выполнения кода (зависит от вашего окружения):

go"PATH=/usr/local/bin:/usr/bin:/bin"
"HOME=/home/user"
"SHELL=/bin/bash"
"USER=user"
...

Пример

Давайте разобьем переменные окружения на ключи и значения:

gopackage main

import (
  "fmt"
  "os"
  "strings"
)

func main() {
  env := os.Environ()
  for _, e := range env {
    parts := strings.SplitN(e, "=", 2)
    if len(parts) == 2 {
      key := parts[0]
      value := parts[1]
      fmt.Printf("%s = %s\n", key, value)
    }
  }
}

Результат выполнения кода (зависит от вашего окружения):

go"PATH = /usr/local/bin:/usr/bin:/bin"
"HOME = /home/user"
"SHELL = /bin/bash"
"USER = user"
...

Пример

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

gopackage main

import (
  "fmt"
  "os"
  "strings"
)

func main() {
  env := os.Environ()
  for _, e := range env {
    if strings.HasPrefix(e, "PATH=") {
      fmt.Println(e)
      break
    }
  }
}

Результат выполнения кода (зависит от вашего окружения):

go"PATH=/usr/local/bin:/usr/bin:/bin"

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

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