如何执行shell内置命令

我试图找出 Linux 上是否存在一个程序,我找到了这篇文章。我尝试从我的 go 程序中执行它,它一直给我一个错误,说它在我的 $PATH 中找不到“命令”,这是意料之中的,因为它是 linux 中的内置命令而不是二进制文件。所以我的问题是如何从 go 程序中执行 linux 的内置命令?

exec.Command("command", "-v", "foo")

错误:exec:“命令”:在 $PATH 中找不到可执行文件


叮当猫咪
浏览 215回答 2
2回答

饮歌长啸

就像那篇文章所说的那样,“命令”是内置的 shell。您可以在 go via 中本地执行此操作exec.LookPath。如果必须,您可以使用系统which二进制文件,也可以command从 shell 中执行,exec.Command("/bin/bash", "-c", "command -v foo")

肥皂起泡泡

或者,如果它是一个不需要参数的内置命令,您可以执行以下操作:package mainimport (    "fmt"    "log"    "os/exec")func main() {    out, err := exec.Command("uuidgen").Output()    if err != nil {        log.Fatal(err)    }    fmt.Printf("%s", out)}这将打印出一个唯一的 ID,如下所示: 4cdb277e-3c25-48ef-a367-ba734ce407c1 就像直接从命令行调用它一样。
打开App,查看更多内容
随时随地看视频慕课网APP