繁体   English   中英

尽管 GOPATH 已设置,但 echo $GOPATH 不返回任何内容

[英]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 环境值也会发生这种情况: 空的 GOPATH 结果

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

/home/ethanc

有谁知道为什么当我回显我的GOPATH ,只返回一个新行?

这是 GOPATH 的默认值

由于它从未设置过,go 将使用它的合理默认值。

主要的结果当然是你所有的 go 项目都共享这个 $GOPATH。

感谢 @DonSimon ( https://stackoverflow.com/users/10453847/don-simon ) 为我指明了正确的方向。

因此,虽然我的 go 环境变量设置正确并且go env返回了正确的 env。 变量,它没有在我的 bash shell 中设置。

我只是按照在我的终端中自动设置 GOPATH 的说明进行操作:在此处输入链接描述

具体来说,我这样做是因为我没有.bash_profile

  1. vi ~/.bashrc
  2. 在代码底部添加以下代码行: 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM