Go 环境变量

环境变量是一种很普遍的将配置信息传递给Unix程序的机制。

  1. package main
  2. import "os"
  3. import "strings"
  4. import "fmt"
  5. func main() {
  6. // 为了设置一个key/value对,使用`os.Setenv`
  7. // 为了获取一个key的value,使用`os.Getenv`
  8. // 如果所提供的key在环境变量中没有对应的value,
  9. // 那么返回空字符串
  10. os.Setenv("FOO", "1")
  11. fmt.Println("FOO:", os.Getenv("FOO"))
  12. fmt.Println("BAR:", os.Getenv("BAR"))
  13. // 使用`os.Environ`来列出环境变量中所有的key/value对
  14. // 你可以使用`strings.Split`方法来将key和value分开
  15. // 这里我们打印所有的key
  16. fmt.Println()
  17. for _, e := range os.Environ() {
  18. pair := strings.Split(e, "=")
  19. fmt.Println(pair[0])
  20. }
  21. }

这里我们设置了FOO环境变量,所以我们取到了它的值,但是没有设置BAR环境变量,所以值为空。另外我们列出了系统的所有环境变量,当然这个输出根据不同的系统设置可能并不相同。

输出结果

  1. FOO: 1
  2. BAR:
  3. TERM_PROGRAM
  4. TERM
  5. SHELL
  6. TMPDIR
  7. Apple_PubSub_Socket_Render
  8. OLDPWD
  9. USER
  10. SSH_AUTH_SOCK
  11. __CF_USER_TEXT_ENCODING
  12. __CHECKFIX1436934
  13. PATH
  14. PWD
  15. ITERM_PROFILE
  16. SHLVL
  17. COLORFGBG
  18. HOME
  19. ITERM_SESSION_ID
  20. LOGNAME
  21. LC_CTYPE
  22. GOPATH
  23. _
  24. FOO