Shell
文章内容
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"
问题反馈 >
2022-05-07最近更新
感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。