从环境中获取变量?

时间:2015-03-27 05:33:44

标签: go environment

我在环境变量GOPATH中设置了数据,我想在程序中以编程方式提取这些数据。我更愿意将所有ENV变量作为map[string]interface{}获取。这是因为我想将ENV值与我当前获取的JSON配置集成。

 var data map[string]interface{}

 file, err := ioutil.ReadFile(configFilePath)
 if err != nil {
   log.Fatal(err)
 }
 err = json.Unmarshal(file, &data)
 if err != nil {
   log.Fatal(err)
 }

1 个答案:

答案 0 :(得分:5)

os.Environ()以#34; key = value"形式返回表示环境的字符串。要创建地图,请遍历字符串,拆分为" ="并设置地图条目。

m := make(map[string]string)
for _, e := range os.Environ() {
    if i := strings.Index(e, "="); i >= 0 {
        m[e[:i]] = e[i+1:]
    }
}