Shell 脚本通常包含难以手动发现的细微 bug 和可移植性问题。本技能提供关于配置和使用 ShellCheck 自动检测和修复 shell 脚本问题的全面指导。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“shellcheck-configuration”。 如何修复 SC2086:for i in $list; do echo $i; done
预期结果:
SC2086 警告未引用的变量会导致单词拆分。修复方法:使用 "$list" 或 "${list[@]}" 处理数组。修正后:for i in "$list"; do echo "$i"; done
正在使用“shellcheck-configuration”。 创建用于严格 Bash 验证的 .shellcheckrc
预期结果:
配置设置为 shell=bash,启用可选检查(如 require-variable-braces),并禁用 SC1091(未找到源文件)作为项目默认值。
正在使用“shellcheck-configuration”。 最常见的 ShellCheck 错误有哪些需要修复?
预期结果:
前 5 个:SC2086(未引用变量)、SC1091(源文件)、SC2154(未设置变量)、SC2148(提示)、SC2164(使用 cd 时带 || exit)。每个都有本技能中详细介绍的具体修复方法。
安全审计
安全All 111 static findings are false positives. The skill contains shell command examples used to demonstrate ShellCheck error codes (SC2086, SC1091, etc.). The scanner misidentified 'SC' as 'C2' keywords. URLs point to legitimate ShellCheck project resources. References to ~/.shellcheckrc and ~/.bashrc are standard config file paths, not malicious file access. The skill is purely educational documentation for ShellCheck static analysis tool.
高风险问题 (1)
中风险问题 (3)
低风险问题 (1)
质量评分
你能构建什么
DevOps 工程师:CI/CD 管道设置
在 GitHub Actions、GitLab CI 或其他 CI/CD 系统中设置自动化 shell 脚本检查,以便在部署前发现问题。
软件开发者:脚本质量改进
使用 ShellCheck 指导修复现有 shell 脚本错误,提高在 不同 Unix/Linux 环境中的可移植性。
系统管理员:团队代码标准
通过项目级配置和 pre-commit 验证,在团队脚本中强制执行一致的代码质量标准。
试试这些提示
如何在 macOS、Ubuntu 或从源码安装 ShellCheck?
ShellCheck 错误 SC2086 是什么意思,如何在我的脚本中修复它?
为 Bash 项目创建一个 .shellcheckrc 配置文件,启用严格检查但禁用 SC1091 和 SC2119。
向我展示如何将 ShellCheck 集成到 GitHub Actions 工作流中,检查所有 .sh 文件并在发现任何问题时使构建失败。
最佳实践
- 在 CI/CD 管道中运行 ShellCheck,以便在合并前发现问题
- 正确配置目标 shell——不要将 Bash 脚本作为 POSIX sh 分析
- 使用内联指令说明为什么抑制特定警告
避免
- 在不理解为什么出现警告的情况下禁用警告
- 为错误的 shell 方言分析脚本(将 Bash 当作 sh)
- 忽略 ShellCheck 输出而不解决底层问题