golang exec.Command returns 退出状态 1 bash

golang exec.Command returns exit status 1 with bash

我正在尝试 运行 在 exec.Command 中使用 bash -c 多个命令,当我手动 运行 命令时,它 returns 没有错误输出命令为零,但没关系。我不知道为什么它 returns exit status 1 当我 运行 它通过 golang exec.Command.

这是我的代码:

cmd := exec.Command("bash", "-c", "blkid -o device | grep -v part | grep /dev/mapper")
_ = cmd.Wait()
stdout, err := cmd.Output()

我什至尝试 另一个问题的答案,但也没有成功。 重要的是,当我在输出不是 nil 的虚拟机上执行 运行 命令时,命令成功执行,但是当我在输出为 nil 的 Centos 上尝试此命令时,它失败了。

这是因为你必须在字符串切片中传递命令。 改用这个 -

cmd := exec.Command("bash",strings.Fields("-c blkid -o device | grep -v part | grep /dev/mapper"))
_ = cmd.Wait()
stdout, err := cmd.Output()