猿问

虽然设置了 GOPATH,但 echo $GOPATH 什么都不返回

我有这个奇怪的问题。


当我运行时go env,我得到以下信息:


GOARCH="amd64"

GOBIN=""

GOCACHE="/home/ethanc/.cache/go-build"

GOEXE=""

GOFLAGS=""

GOHOSTARCH="amd64"

GOHOSTOS="linux"

GOOS="linux"

GOPATH="/home/ethanc/go"

GOPROXY=""

GORACE=""

GOROOT="/usr/local/go"

GOTMPDIR=""

GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"

GCCGO="gccgo"

CC="gcc"

CXX="g++"

CGO_ENABLED="1"

GOMOD="/home/ethanc/marketstore/go.mod"

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

PKG_CONFIG="pkg-config"

GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build154822748=/tmp/go-build -gno-record-gcc-switches"

但是,当我运行时echo $GOPATH,我得到一个空的新行。当我尝试回应它们时,所有其他 GO 环境值也会发生这种情况: 空 GOPATH 结果

这没有意义,因为当我尝试打印出其他路径变量时,如echo $HOME,我得到了正确的值:


/home/ethanc

有谁知道为什么当我 echo my 时GOPATH,只返回一个新行?


拉丁的传说
浏览 290回答 3
3回答

蛊毒传说

这是GOPATH 的默认值。因为它从未设置过,go 将使用它合理的默认值。主要结果当然是你所有的 go 项目共享这个 $GOPATH。

当年话下

虽然我的 go 环境变量设置正确并go env返回了正确的环境。变量,它没有在我的 bash shell 中设置。我只是按照在我的终端中自动设置 GOPATH 的说明进行操作:具体来说,我这样做是因为我没有.bash_profile:vi ~/.bashrc在代码底部添加了以下代码行:export GOPATH=$HOME/go

叮当猫咪

~/.profile我想你可以在或中添加 GOPATH~/.bashrc当您将 bash 作为交互式 shell 启动时(即,不运行脚本),它会读取~/.bashrc当作为登录 shell 调用时,它只会读取~/.bash_profileor ~/.profile。在这里附上我的 ~/.profile 中的内容export PATH=$PATH:/usr/local/go/bin export PATH=$PATH:$HOME/go/bin
随时随地看视频慕课网APP

相关分类

Go
我要回答