技能 bash-scripting
📦
bash-scripting
安全
创建生产就绪的 bash 脚本(含错误处理)
构建可靠的 shell 脚本需要防御性模式和全面测试。本工作流程将指导您创建具有正确错误处理、日志记录和自动化测试覆盖率的健壮 bash 脚本。
支持: Claude Codex Code(CC)
1
下载技能 ZIP
2
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
3
开启并开始使用
测试它
正在使用“bash-scripting”。 创建具有错误处理的备份脚本
预期结果:
- 启用严格模式的脚本模板
- 包含选项文档的使用说明函数
- 带时间戳的日志记录函数
- 失败时清理的陷阱处理器
- 带错误检查的主要备份逻辑
- 包含 5 个以上测试用例的 Bats 测试文件
正在使用“bash-scripting”。 为我的现有脚本添加日志记录
预期结果:
- 具有 INFO/WARN/ERROR 级别的 log() 函数
- 时间戳格式(YYYY-MM-DD HH:MM:SS)
- 通过 VERBOSE 标志切换调试模式
- 日志轮转配置示例
- 与现有函数的集成点
安全审计
安全v1 • 2/25/2026
Static analyzer flagged 42 patterns but all are false positives. The skill is workflow documentation referencing other skills (@bash-pro, @bash-defensive-patterns) and contains a safe bash template using standard command substitution. No executable security risks detected.
1
已扫描文件
198
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude
质量评分
38
架构
100
可维护性
87
内容
50
社区
100
安全
83
规范符合性
你能构建什么
系统管理自动化
创建可靠的服务器维护、备份操作和系统监控脚本,具有正确的错误处理和日志记录。
CI/CD 管道开发
构建具有全面测试、回滚功能和详细日志记录的部署和构建脚本,以便故障排查。
基础设施工具
开发用于基础设施管理的命令行工具,具有专业的参数解析、使用文档和边缘情况处理。
试试这些提示
基础脚本结构
创建一个具有严格模式(set -euo pipefail)、使用说明函数、参数解析和基本日志记录的 bash 脚本模板。包含清理陷阱处理器。
错误处理实现
为我的 bash 脚本添加全面的错误处理,包括 EXIT/INT/TERM 的陷阱处理器、重试逻辑用于失败的命令,以及有意义的退出代码。
使用 Bats 进行测试设置
为我的 bash 脚本生成 Bats 测试用例,涵盖正常执行、错误情况、边缘情况和参数验证。为外部命令包含模拟函数。
完整生产脚本
指导我完成所有 7 个阶段,创建一个具有日志记录、错误处理、回滚功能、Bats 测试和 ShellCheck 配置的生产就绪部署脚本。
最佳实践
- 始终使用严格模式(set -euo pipefail)以便及早发现错误
- 对所有变量展开加引号以处理空格和特殊字符
- 在部署前使用 ShellCheck 捕获常见错误
避免
- 使用反引号而不是 $(...) 进行命令替换
- 忽略关键命令的返回码
- 硬编码路径而不是使用变量或参数
常见问题
使用此工作流程需要哪些其他技能?
此工作流程引用 @bash-pro、@bash-defensive-patterns、@bash-linux、@bats-testing-patterns 和 @shellcheck-configuration。这些技能为每个阶段提供专门的模式。
此工作流程是否与 sh 或 dash 兼容?
工作流程专门针对 bash。某些模式如数组和进程替换需要 bash。要实现 POSIX sh 兼容性,需要进行额外修改。
如何运行此工作流程生成的 Bats 测试?
安装 Bats(brew install bats 或 apt install bats),然后在脚本目录中运行 'bats tests/'。工作流程会生成一个包含 .bats 测试文件的 tests/ 文件夹。
什么是 ShellCheck?为什么推荐使用它?
ShellCheck 是用于 shell 脚本的静态分析工具,可捕获常见错误、语法错误和可移植性问题。在部署前使用 'shellcheck script.sh' 运行它。
此工作流程是否可用于一次性脚本?
可以,但您可以根据脚本的关键程度跳过某些阶段。对于快速脚本,专注于第 2 阶段(结构)和第 4 阶段(错误处理)。完整工作流程适用于生产脚本。
如何在 bash 脚本中处理 secrets?
切勿硬编码 secrets。使用环境变量、从受保护的文件读取,或使用 secret 管理工具。工作流程的错误处理应在日志中屏蔽敏感值。