我试图找出Linux上是否存在程序,并且找到了本文。我尝试从go程序中执行此操作,但它始终提示我无法在$ PATH中找到“命令”,这是预料之中的,因为它是Linux中的内置命令,而不是二进制文件。所以我的问题是如何从go程序中执行linux的内置命令?
exec.Command("command", "-v", "foo")
错误:执行:“命令”:在$ PATH中找不到可执行文件
就像那篇文章说的那样,“命令”是内置的shell。您可以通过go本地进行此操作exec.LookPath。
exec.LookPath
如果需要,您可以使用系统which二进制文件,也可以command在外壳程序内执行,
which
command
exec.Command("/bin/bash", "-c", "command -v foo")