1. 产品简介
  2. 快速开始
  3. 编写构建流程
  4. 配置构建计划
  5. 构建环境依赖包
  6. 构建制品
  7. 构建节点
  8. 管理构建计划
  9. 系统插件
  10. 自定义团队插件
  11. 最佳实践
  12. 常见问题
  13. 词汇表
持续集成 / 代码规范检查 / Shell

Shell

文章内容
  1. ShellCheck
  2. Shfmt

Shell 常用代码规范检查工具如下:

工具 lint 命令 支持 IDE
ShellCheck shellcheck foo.sh VSCode、Jetbrains 内置
Shfmt shfmt -d -i 4 -sr foo.sh Jetbrains 内置

ShellCheck

ShellCheck 内置规范包括下列规则:

  • 子语句标志符
  • 禁止全角引号
  • Useless cat
  • read lines rather than words

安装:

apt-get update
apt-get install shellcheck

或下载:

wget -nc "https://coding-public-generic.pkg.coding.net/public/downloads/shellcheck-linux-x86-64.tar.xz?version=v0.7.2" -O shellcheck-v0.7.2.linux.x86_64.tar.xz
tar -C /usr/local/bin/ --strip-components=1 -Jxvf shellcheck-v0.7.2.linux.x86_64.tar.xz shellcheck-v0.7.2/shellcheck

全量检查:

shellcheck foo.sh 

本地增量检查:

git diff --diff-filter=d --name-only HEAD | grep '.sh$' | xargs shellcheck

持续集成合并请求增量检查:

sh "git diff --diff-filter=d --name-only ${env.MR_TARGET_BRANCH}... | grep '.sh\$' | xargs shellcheck"

Shfmt

Shfmt 内置规范包括下列规则:

  • for/do 应位于同一行
  • 子语句标志符
  • 行缩进:默认 tab,可自定义几个空格
  • 行内缩进:一个空格
  • 重定向后的空格:默认无空格,可自定义

安装:

wget -nc "https://coding-public-generic.pkg.coding.net/public/downloads/shfmt-linux-amd64?version=v3.3.1" -O /usr/local/bin/shfmt
chmod +x /usr/local/bin/shfmt

全量检查:

shfmt -d -i 4 -sr foo.sh

本地增量检查:

git diff --diff-filter=d --name-only HEAD | grep '.sh$' | xargs shfmt -d -i 4 -sr

持续集成合并请求增量检查:

sh "git diff --diff-filter=d --name-only ${env.MR_TARGET_BRANCH}... | grep '.sh\$' | xargs shfmt -d -i 4 -sr"

上一篇PHP
最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?

工单咨询