Функция os.Environ
Функция os.Environ возвращает срез строк, содержащий все переменные окружения текущего процесса.
Каждый элемент среза представляет собой строку в формате "KEY=value".
Функция не принимает никаких параметров и возвращает []string.
Важно отметить, что возвращаемый срез является копией переменных окружения на момент вызова функции,
поэтому последующие изменения в окружении (например, через os.Setenv) не повлияют на уже полученный срез.
Синтаксис
os.Environ() []string
Пример
Давайте получим все переменные окружения и выведем их на экран:
package main
import (
"fmt"
"os"
)
func main() {
env := os.Environ()
for _, e := range env {
fmt.Println(e)
}
}
Результат выполнения кода (зависит от вашего окружения):
"PATH=/usr/local/bin:/usr/bin:/bin"
"HOME=/home/user"
"SHELL=/bin/bash"
"USER=user"
...
Пример
Давайте разобьем переменные окружения на ключи и значения:
package 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)
}
}
}
Результат выполнения кода (зависит от вашего окружения):
"PATH = /usr/local/bin:/usr/bin:/bin"
"HOME = /home/user"
"SHELL = /bin/bash"
"USER = user"
...
Пример
Давайте отфильтруем переменные окружения, содержащие определенный ключ:
package main
import (
"fmt"
"os"
"strings"
)
func main() {
env := os.Environ()
for _, e := range env {
if strings.HasPrefix(e, "PATH=") {
fmt.Println(e)
break
}
}
}
Результат выполнения кода (зависит от вашего окружения):
"PATH=/usr/local/bin:/usr/bin:/bin"
Смотрите также
-
функцию
os.Getenv,
которая возвращает значение конкретной переменной окружения -
функцию
os.Setenv,
которая устанавливает значение переменной окружения -
функцию
os.LookupEnv,
которая проверяет наличие и возвращает значение переменной окружения -
функцию
os.Clearenv,
которая очищает все переменные окружения