在GO中调用exec.cmd()后修改参数



我正在尝试使用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
}

最新更新