我有这个奇怪的问题。
运行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
时只返回新行吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
感谢@DonSimon(https://stackoverflow.com/users/10453847/don-simon)向我指出正确的方向。
因此,在正确设置go环境变量后,go env
返回了正确的env。变量,它没有在我的bash shell中设置。
我刚刚遵循了在我的终端机enter link description here
中自动设置GOPATH的说明。具体来说,我这样做是因为我没有.bash_profile
:
vi ~/.bashrc
export GOPATH=$HOME/go
答案 2 :(得分:0)
我认为您可以在 ~/.profile
或 ~/.bashrc
中添加 GOPATH
当您将 bash 作为交互式 shell 启动时(即,不运行脚本),它读取 ~/.bashrc
当作为登录shell调用时,它
只读取 ~/.bash_profile
或 ~/.profile
。
了解更多
外壳之间的区别,请阅读此post
在此处附上我的 ~/.profile 中的内容
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/go/bin