如何在golang中执行linux内置命令

Kon*_*oha 8 executable go

我试图找出Linux上是否存在程序,我发现了这篇文章.我尝试从我的go程序中执行此操作并且它一直给我一个错误,说它在我的$ PATH中找不到"命令",这是预期的,因为它是linux中的内置命令而不是二进制文件.所以我的问题是如何从go程序中执行linux的内置命令?

exec.Command("command", "-v", "foo")
Run Code Online (Sandbox Code Playgroud)

错误:exec:"command":在$ PATH中找不到可执行文件

Jim*_*imB 6

就像那篇文章所说的那样,"command"是一个内置的shell.你可以在go via中原生这样做exec.LookPath.

如果必须,您可以使用系统which二进制文件,也可以command在shell中执行,

exec.Command("/bin/bash", "-c", "command -v foo")
Run Code Online (Sandbox Code Playgroud)