专栏首页Go实战Linux/Mac命令行中动态设置Golang的GOPATH工作路径

Linux/Mac命令行中动态设置Golang的GOPATH工作路径

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

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • golang的位运算操作符的使用 转

    感觉位运算操作符虽然在平时用得并不多,但是在涉及到底层性能优化或者使用某些trick的时候还是比较有意思。

    henrylee2cn
  • [Go小技巧] 实现常用的KV缓存(有序且并发安全)

    (adsbygoogle = window.adsbygoogle || []).push({});

    henrylee2cn
  • Golang捕获panic堆栈信息的优雅姿势 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    henrylee2cn
  • Android 高效安全的本地广播 LocalBroadcast 完全解析

    背景 广播作为Android 四大组件有非常广泛的用途。广播可以用作进程间通信,也会用作进程内部某些组件内消息的传递。 这就会有个问题,如果想让发送的广播只有我...

    非著名程序员
  • morgan nodejs日志组件两种用法

    默认morgan没有提供记录请求参数和请求内容的方法, 但是他提供了扩展方法,如下:

    mafeifan
  • PHP中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可...

    企鹅号小编
  • 数据库(PDO 对象常用方法)

    PDO 是一个“数据库访问抽象层”,作用是统一各种数据库(MySQL、MSSQL、Oracle、DB2、PostgreSQL……)的访问接口,能轻松的在不同的数...

    用户5745385
  • samba共享服务安装,开发可用映射

    1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题...

    菲宇
  • 浅谈互联网挂马与检测技术

    在形形色色的互联网中,网站被挂马是非常严重的安全事件,因为这不仅标志着自己的网站被控制,而且还会影响到网站的用户,不管是杀毒软件的“友情”提示还是用户中木马,对...

    周俊辉
  • 微服务架构选型实践

    背景 随着公司一年多的成长,我们已经开发了数十个项目了,后台有 JAVA 的有 PHP 的,为了更好地提升开发与管理效率,各技术大牛小牛们时常进行激烈的 PK,...

    Java高级架构

扫码关注云+社区

领取腾讯云代金券