如何在GO中将env变量的列表/数组传递给env



我必须使用golang执行一个shell脚本,同时我还必须传递env变量(未知数量的变量(。

cmd_string := "echo $TOKEN && echo $USER_NAME"
cmd := exec.Command("bash", "-c", cmd_string)
cmd_variables :=["USER_NAME=John", "TOKEN=1234", "BOOLEAN=true"]
for _, vars := range cmd_variables {
cmd.Env = append(os.Environ(), vars)
}

但它只是追加数组中的最后一个变量如何在env中追加所有变量?任何其他更好的

for _, vars := range cmd_variables {
cmd.Env = append(os.Environ(), vars)
} 

应该是

cmd.Env = os.Environ()
for _, vars := range cmd_variables {
cmd.Env = append(cmd.Env, vars)
}

为了使每个追加调用真正追加到cmd.Env

最新更新