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()
我正在尝试 运行 在 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()
我什至尝试 Centos
上尝试此命令时,它失败了。
这是因为你必须在字符串切片中传递命令。 改用这个 -
cmd := exec.Command("bash",strings.Fields("-c blkid -o device | grep -v part | grep /dev/mapper"))
_ = cmd.Wait()
stdout, err := cmd.Output()