将环境变量传递给 exec.Command
使用 exec.Command 为命令行工具创建包装器脚本时,您可能会遇到情况您需要在命令执行过程中传递环境变量。在这种情况下,您正在使用 ansible-playbook 并需要使用参数 MY_VAR。
exec.Command 函数接受一个字符串数组作为其第一个参数,其中第一个元素表示要执行的命令执行。要传递环境变量,我们可以修改 Cmd 结构中的环境变量切片。
在您的情况下,您在使用 Cmd 结构的 Env 字段时面临覆盖所有环境变量的问题。为了解决这个问题,您可以将所需的环境变量附加到现有的 os.Environ() 列表中:
cmd := exec.Command("ansible-playbook", args...) cmd.Env = os.Environ() cmd.Env = append(cmd.Env, "MY_VAR=some_value")
此方法将保留现有的环境变量,同时将特定的 MY_VAR 环境变量设置为您想要的值。通过将本机 os.Environ() 函数与附加附加环境变量的功能相结合,您可以使用 exec.Command 有效地将环境变量传递到命令执行。
以上是如何在 Go 中将环境变量传递给 `exec.Command`?的详细内容。更多信息请关注PHP中文网其他相关文章!