Gopher们经常会遇到在多个$GOPATH来回切换工作的场景,每次切换都要手动修改$GOPATH才能编译运行当前项目,很是不方便!!那么有没有自动修改$GOPATH的方法呢?答案当然是肯定的!

本人在 Linux/Mac的命令行通过配置 `~/.zshrc` 文件实现了在窗口启动及调用`jj`命令时自动重置$GOPATH的功能。

思路是:

首先判断当前目录是否在某个 `src` 目录下;

若在,则进一步判断当前路径对应的GOPATH是否已经设置到环境变量;

若没有设置,则自动修改$GOPATH到当前路径。

步骤一:打开 `~/.zshrc` 文件

vim ~/.zshrc

 步骤二:将下面代码拷贝到 `~/.zshrc` 文件中,并保存

function setgopath() {
    currpath=`pwd`
    gopath=${currpath%/src*}
    if [[ $currpath != $gopath ]];then
        if [[ $gopath != $GOPATH ]];then
            export GOPATH=$gopath
            export GOBIN=$gopath/bin
            echo '$GOPATH:'$GOPATH
        fi
    fi
}

jj () {
    cd $1
    setgopath
}

步骤三:使配置生效

source ~/.zshrc