echo $GOPATH 将打印:
/mnt/star/program/go/package:/mnt/star/git_repository/workspace/go_workplace
Run Code Online (Sandbox Code Playgroud)
有 2 个目录,我想将第一个目录的子目录附加bin/到$PATH.
如果我写$PATH=$PATH:$GOPATH/bin,那么它实际上将 2 个目录附加到$PATH:
/mnt/star/program/go/package/mnt/star/program/go/package/bin./mnt/star/git_repository/workspace/go_workplace/bin$PATH.顺便说一句,有些情况下$GOPATH只包含一个目录,因此只需追加即可$GOPATH/bin。
我正在寻找适合这两种情况的解决方案。那么,如何将其写入 bash 配置文件中?
您可以使用:
PATH="$PATH:${GOPATH%%:*}/bin"
Run Code Online (Sandbox Code Playgroud)
或者
PATH="$PATH:${GOPATH%:*}/bin"
Run Code Online (Sandbox Code Playgroud)
两者都可以工作,因为最多可以有一个:.
之后将删除该部分:。因此,在您的第一种情况下,它将删除第二个目录,而在您的第二种情况下,将没有像 那样的模式:*,因此目录名称不会发生变化。