不同的os.Getenv(" PATH")来自shell和双击可执行文件

时间:2017-02-05 22:38:11

标签: linux go path

在我的Go程序中,我在Linux(Debian)上调用os.Getenv(" PATH"),从shell中运行程序或双击我的可执行图标时得到不同的结果文件浏览器或我的桌面。

我已经编辑了我的〜/ .profile以在PATH中包含go二进制文件,如下所示:

export PATH=$PATH:/usr/local/go/bin

建议使用Getting Started Go指示。

当我从shell运行我的os.Getenv(" PATH")程序时,它会输出:

/usr/local/bin:/usr/bin:/bin:/usr/local/go/bin

但是当我通过双击可执行文件来运行它时输出:

/usr/local/bin:/usr/bin:/bin

这表示双击图标不会使用profile命令初始化变量。我怎样才能从我的Go程序中获取我想要的PATH,即包括其他目录?

1 个答案:

答案 0 :(得分:0)

这取决于你想要的PATH。

您的程序从执行的上下文中获取环境变量。 您需要修改系统的PATH变量以“了解”Go版本提供的可执行文件。当你已经有一个已编译的二进制文件时,你通常不需要'usr / local / go / bin'PATH。