在 $PATH 中查找二进制文件

Hyp*_*vil 5 go

我正在寻找一个函数来在 $PATH 中可用的所有文件夹中查找二进制文件。
我知道我可以使用 os.Getenv("PATH") 但它返回:

path: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin
Run Code Online (Sandbox Code Playgroud)

哪个需要处理。
理想情况下,函数如下:FindBinary("ntpq"),它将返回路径+二进制名称,如果在路径中找不到,则返回 false。
有人有现成的功能吗?

Hyp*_*vil 12

您可以使用包LookPath中的函数os/exec

path, err := exec.LookPath("fortune")
if err != nil {
    log.Fatal("installing fortune is in your future")
}
fmt.Printf("fortune is available at %s\n", path)
Run Code Online (Sandbox Code Playgroud)