英文:
Find binary's in $PATH
问题
我正在寻找一个函数,可以在所有可用的文件夹中查找二进制文件,这些文件夹在$PATH中。我知道可以使用os.Getenv("PATH")来获取路径,但它返回的是:
path: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin
需要进行处理。理想情况下,有一个函数可以这样使用:FindBinary("ntpq"),当在路径中找不到时,它将返回路径+二进制文件名和false。有人有现成的函数吗?
英文:
I am looking for a function to find a binary in all folders which are available in $PATH.
I know i can use os.Getenv("PATH") but it returns:
path: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin
Which needs to be processed.
Ideally function like this: FindBinary("ntpq") and it will return the path + binary name and false when not found in path.
Does anybody have a ready function?
答案1
得分: 11
你可以使用os/exec
包中的LookPath
函数:
path, err := exec.LookPath("fortune")
if err != nil {
log.Fatal("安装 fortune 是你的未来")
}
fmt.Printf("fortune 可在 %s 处找到\n", path)
这段代码的作用是查找系统中是否安装了名为"fortune"的程序,并返回该程序的路径。如果未找到该程序,则会输出一条错误信息。
英文:
You can use the LookPath
function from the os/exec
package:
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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论