go - 在 Go 中调用 exec.Cmd() 后修改参数

标签 go command

我正在尝试使用 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.Pathexec.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/

相关文章:

go - 如何比较golang中的函数

Tomcat命令检查配置文件?

node.js - 如何同时执行 typescript watch 和 running server?

c# - Visual Studio 设置命令参数

linux - 请详细告诉我以下脚本

c++ - 嵌入式 Tcl : Does Tcl autocomplete commands?

go - 如何在 Go 中处理来自 Druid 查询的大型 http 响应体

sorting - 获取int的第一个数字

Docker build 如何在golang build中添加库

http - golang http 文件太多