shell脚本输出颜色

写shell脚本时,用echo命令输出内容,这我们都知道。但是怎么给输出内容上点色呢?

其实很简单,利用-e参数,即启用反斜杠转义的解释。

查看全文: ‘shell脚本输出颜色’ »

在go的protobuf中进行自定义json tag标记及使用

在使用grpc-gateway的时候,测试时发现HTTP接口返回给前端的json数据的字段格式很不统一,所以需要标准化protobuf->json的映射关系

原因

  1. proro的字段命名很不规范,有全小写的,有大驼峰/小驼峰/下划线等等
  2. 使用了默认的 protoc-gen-go 插件,生成的json tag会尝试小驼峰以及omitempty,但如果是纯小写或大驼峰,则不会改变

查看全文: ‘在go的protobuf中进行自定义json tag标记及使用’ »

高版本gcc编译出的程序在低版本glibc机器上运行

问题背景

比如我们用gcc 9.3.0编译程序,但需要发布的机器gcc版本是4.8.5,怎么办?

你可能想到如下方法

  1. 静态编译
  2. 容器发布
  3. 打包依赖的so,使用本地so运行程序
查看全文: ‘高版本gcc编译出的程序在低版本glibc机器上运行’ »

线程安全–彻底搞懂volatile关键字

对于volatile这个关键字,相信很多朋友都听说过,甚至使用过,这个关键字虽然字面上理解起来比较简单,但是要用好起来却不是一件容易的事。
这篇文章将从多个方面来讲解volatile,让你对它更加理解。

查看全文: ‘线程安全–彻底搞懂volatile关键字’ »

从远程仓库获取最后一个git标签而不进行克隆

如何从(非签出)远程仓库中获取最后一个标签?
在我的本地副本上,我使用describe

git describe --abbrev=0 --tags

但我不能使用describe与远程存储

最佳答案
使用git ls-remote –tags [repository]

查看全文: ‘从远程仓库获取最后一个git标签而不进行克隆’ »