【发布时间】:2019-07-02 04:34:24
【问题描述】:
我正在尝试使用 exec.Command() 在 Go 中执行一组命令。我正在尝试使用 Docker Exec 分离 Gluster 对等体。
fmt.Println("About to execute gluster peer detach")
SystemdockerCommand := exec.Command("sh", "-c", "docker exec ", "9aa1124", " gluster peer detach ", "192.168.1.1", " force")
var out bytes.Buffer
var stderr bytes.Buffer
SystemdockerCommand.Stdout = &out
SystemdockerCommand.Stderr = &stderr
err := SystemdockerCommand.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
}
fmt.Println("System Docker exec : " + out.String())
我期待的结果是“没有可分离的同伴”。但是得到了 退出状态 1:“docker exec”至少需要 2 个参数。
【问题讨论】:
-
您似乎只想执行带有一些参数的单个命令
docker。或者第二个命令是哪个?! -
您可以通过多次调用
exec.Command来使用exec.Command执行多个命令。如果您尝试在命令之间传输数据,例如在 shell 中,您必须手动执行此操作。但是我没有看到任何证据表明您甚至试图执行两个命令,更不用说将它们连接在一起了。你的实际问题是什么? -
什么时候我会尝试执行。输出:退出状态 127:docker exec 需要至少 2 个参数
-
所以传递两个参数。这与两个命令无关。
标签: go