我正在尝试使用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
?
将命令更改为执行时,还必须将cmd.path设置为exec.command中的cmd.path。
cmd := exec.Command("echo", "hello world")
cmd.Env = []string{"env1=1"}
cmd.Args = []string{"echo2", "oh wait I changed my mind"}
lp, err := exec.LookPath("echo2")
if err != nil {
// handle error
}
cmd.Path = lp
if err := cmd.Run(); err != nil {
// handle error
}