【发布时间】:2017-12-06 05:35:01
【问题描述】:
我正在尝试使用exec.Cmd(command, flags...) 运行命令,并希望在调用cmd.Run() 函数之前能够灵活地修改参数。
例如:
cmd := exec.Command("echo", "hello world")
cmd.Env = []string{"env1=1"}
cmd.Args = []string{"echo2", "oh wait I changed my mind"}
cmd.Run()
上面的代码似乎一直在运行echo hello world而不是echo2 oh wait I changed my mind
我期望运行echo2 而不是echo 是否正确?
【问题讨论】:
-
注意,调用
exec.Command时,第一个参数是命令,后面的参数是args。因此,您的代码将实际执行更改为(shell 等效项)echo "echo2" "oh wait I changed my mind"。要更改要执行的命令,而不仅仅是其参数,您必须更新cmd.Path。 -
啊,谢谢@Adrian。好像是这样:)。