我必须使用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