为什么有些命令为exec.Command()返回输出,而其他命令则不返回

时间:2019-01-09 22:59:52

标签: go cmd darwin

我试图弄清楚为什么某些shell命令与goloang exec一起工作,而其他命令在终端输入时都返回相同的结果却不起作用。我基本上想对Windows和Mac二进制文件使用相同的命令(exec.Command(“ where”,“ go”)。Output())。

这些具体是:

function Sidebar({ open }) {
return (
    <Navigation open={open} />)
}

如果可能的话,我想对Windows和Mac(达尔文)使用相同的命令,而不是创建两个单独的功能来检查用户计算机上是否安装了该功能。

1 个答案:

答案 0 :(得分:3)

您遇到的主要问题是exec.Command执行程序,而您尝试使用的命令实际上是内置的。

要使用内置程序,您需要使用exec.LookPath查找它们,它们通常在Shell外部不可用。

如果必须的话,还可以通过将shell作为第一个参数来在shell中的 中执行命令:

exec.Command("/bin/bash", "-c", "command -v foo")