登录
首页 >  Golang >  Go问答

获取Go中$PATH环境变量中可执行文件的路径

来源:stackoverflow

时间:2024-02-23 10:18:23 109浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《获取Go中$PATH环境变量中可执行文件的路径》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我希望使用 Go 拥有 which 的功能。

我想获取 $PATH 中某个程序的完整路径,或者如果该程序不在 $PATH 中则什么也不获取。

我签入了 os 包,但我没有看到任何与实现此功能相关的内容。

我的备份是 exec.Command("which", "program") 但这似乎有点矫枉过正。


解决方案


使用os/exec.LookPath

lookpath 在 path 环境变量指定的目录中搜索名为 file 的可执行文件。如果文件包含斜杠,则直接尝试并且不参考路径。结果可能是绝对路径或相对于当前目录的路径。

如果您需要在所有情况下路径都是绝对路径,请使用 path/filepath.Abs

package main

import (
    "log"
    "os/exec"
    "path/filepath"
)

func main() {
    fname, err := exec.LookPath("go")
    if err == nil {
        fname, err = filepath.Abs(fname)
    }
    if err != nil {
        log.Fatal(err)
    }

    log.Println(fname)
}

本篇关于《获取Go中$PATH环境变量中可执行文件的路径》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>