[英]Although GOPATH is set, echo $GOPATH returns nothing
我有这个奇怪的问题。
当我运行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 环境值也会发生这种情况:
这没有意义,因为当我尝试打印其他路径变量(如echo $HOME
,我得到了正确的值:
/home/ethanc
有谁知道为什么当我回显我的GOPATH
,只返回一个新行?
感谢 @DonSimon ( https://stackoverflow.com/users/10453847/don-simon ) 为我指明了正确的方向。
因此,虽然我的 go 环境变量设置正确并且go env
返回了正确的 env。 变量,它没有在我的 bash shell 中设置。
我只是按照在我的终端中自动设置 GOPATH 的说明进行操作:在此处输入链接描述
具体来说,我这样做是因为我没有.bash_profile
:
vi ~/.bashrc
export GOPATH=$HOME/go
我认为您可以在~/.profile
或~/.bashrc
添加 GOPATH
当您将 bash 作为交互式 shell 启动时(即,不运行脚本),它会读取~/.bashrc
当作为登录 shell 调用时,它只会读取~/.bash_profile
或~/.profile
。 要了解 shell 之间的更多区别,请阅读这篇文章
在这里附上我的 ~/.profile 中的内容
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/go/bin
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.