Shell/Bash¶
linthis 使用 ShellCheck 进行检查,使用 shfmt 进行 Shell/Bash 脚本格式化。
支持的扩展名¶
.sh.bash.zsh.ksh
工具¶
| 工具 | 类型 | 描述 |
|---|---|---|
| ShellCheck | 检查器 | Shell 脚本静态分析工具 |
| shfmt | 格式化器 | Shell 脚本格式化工具 |
安装¶
macOS¶
brew install shellcheck shfmt
Ubuntu/Debian¶
apt install shellcheck
# 对于 shfmt,从 GitHub releases 下载或使用 go install
go install mvdan.cc/sh/v3/cmd/shfmt@latest
Windows¶
# 使用 scoop
scoop install shellcheck shfmt
# 使用 chocolatey
choco install shellcheck
配置¶
ShellCheck¶
在项目根目录创建 .shellcheckrc:
# 禁用特定规则
disable=SC2034,SC2086
# 设置 shell 方言
shell=bash
# 启用额外检查
enable=all
shfmt¶
shfmt 使用命令行参数或 EditorConfig。常见选项:
# 4 空格缩进
shfmt -i 4
# 使用 tab
shfmt -i 0
# 二元运算符在行首
shfmt -bn
用法¶
# 检查 shell 脚本
linthis --lang shell --check-only
# 格式化 shell 脚本
linthis --lang shell --format-only
# 检查并格式化
linthis --lang shell
常见问题¶
SC2086: 双引号防止通配符展开¶
# 错误
echo $var
# 正确
echo "$var"
SC2034: 变量看起来未使用¶
添加注释抑制:
# shellcheck disable=SC2034
unused_var="value"
严重性映射¶
| ShellCheck 级别 | linthis 严重性 |
|---|---|
| error | 错误 |
| warning | 警告 |
| info | 信息 |
| style | 信息 |