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)
两者都可以工作,因为最多可以有一个:
.
之后将删除该部分:
。因此,在您的第一种情况下,它将删除第二个目录,而在您的第二种情况下,将没有像 那样的模式:*
,因此目录名称不会发生变化。