我正在尝试使用 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哦等等,我改变了主意
我期望运行 echo2
而不是 echo
是否正确?
最佳答案
更改要执行的命令时,还必须设置 cmd.Path如exec.Command 。
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
}
关于go - 在 Go 中调用 exec.Cmd() 后修改参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667479/