用途:为 shell 脚本搭建 ShellCheck 静态分析,用于 CI/CD 检查、修复代码问题、统一代码质量标准。
主要能力:支持 Bash、sh、dash、ksh 等 POSIX shell,提供 100 多种警告与错误;可通过 .shellcheckrc 或环境变量指定目标 shell、启用可选检查、禁用特定警告;支持默认、gcc、json、quiet 等输出格式。
安装:macOS 用 brew install shellcheck;Ubuntu/Debian 用 apt-get install shellcheck;源码方式为 git clone https://github.com/koalaman/shellcheck.git 后 make build、make install;用 shellcheck --version 验证。
配置:项目根目录 .shellcheckrc 可写 shell=bash、enable=avoid-nullary-conditions、disable=SC1091 等;环境变量有 SHELLCHECK_SHELL、SHELLCHECK_STRICT、SHELLCHECK_CONFIG。命令行示例:shellcheck --shell=bash --exclude=SC1091,SC2119 --enable=all script.sh。
常见错误码:SC1000-1099 解析错误,SC2000-2099 shell 问题,SC2100-2199 引号问题,SC3000-3999 POSIX 兼容问题。可用 # shellcheck disable=SC2086 抑制单行或整脚本警告。
集成:可写入 pre-commit 钩子、GitHub Actions、GitLab CI,用 find 配合 shellcheck 批量检查;并行检查可用 xargs -0 -P 4 -n 1 shellcheck。
限制:资料未提供具体版本要求、性能基准或与其他 linter 的对比;部分规则可能产生误报,需按项目实际配置排除。