• 输入输出

    标准输入

    将标准输入作为文件来读取

    diff 命令用于对比两个文件的内容:

    1
    
    diff ${file1} ${file2}
    

    有时我们需要将某个命令的输出,跟一个文件进行对比。这时可以先将命令输出重定向到一个临时文件,再进行对比:

    1
    2
    3
    4
    5
    
    ${some_command} > ${result_file}
    diff ${the_file} ${result_file}
    
    # 记得要及时清理临时文件!!!
    rm ${result_file}
    

    但创建临时文件非常麻烦,用完还要记得清理,有更好的方式吗?当然有啦!

    1
    
    diff ${the_file} <(${some_command})
    
    阅读全文
  • 程序员首先要学会偷懒

    公司项目基本都用 gitlab-ci 实现自动集成部署,代码提交后自动触发 代码编译容器构建K8S部署

    最近将 gitlab-ci 权限开放给开发同学,自主将代码部署上测试环境,以便快速验证新功能。我们约定好通过 标签tag )来触发部署,只要推送了格式形如 cicd-x-nnn-MMddHHmm 的标签,就会触发自动部署。其中, nnn 代表开发者姓名拼音首字母,其后跟着日期时间。

    如果我想部署当前的代码 提交点commit ),我只需按照约定打一个部署标签,然后推送到服务器:

    1
    2
    
    git tag cicd-x-cyf-07171430
    git push origin cicd-x-cyf-07171430
    

    很方便不是?

    但可能是我太懒了,还是觉得远远不够。首先,我感受到记忆标签格式的负担,记不住就得查;其次,我得大致看下时间,然后还得手工输入,这绝对不能忍……

    阅读全文