Bash 防御性编程模式
bash-defensive-patterns
Bash 防御性模式
关于使用防御性编程技术、错误处理和安全最佳实践编写生产就绪 Bash 脚本的全面指南,旨在防止常见陷阱并确保可靠性。
适用场景
- 编写生产环境自动化脚本
- 构建 CI/CD 流水线脚本
- 创建系统管理工具
- 开发具备错误恢复能力的部署自动化脚本
- 编写必须安全处理边缘情况的脚本
- 构建可维护的 shell 脚本库
- 实现全面的日志记录和监控
- 创建必须跨不同平台运行的脚本
不适用场景
- 仅需要单个临时 shell 命令而非脚本
- 目标环境要求严格仅使用 POSIX sh
- 任务与 shell 脚本或自动化无关
执行指令
1. 确认目标 shell、操作系统和执行环境。
2. 从一开始就启用严格模式(strict mode)和安全默认设置。
3. 验证输入,为变量加引号,并安全地处理文件。
4. 添加日志记录、错误陷阱(error traps)和基础测试。
安全建议
- 避免在没有确认或 dry-run 标志的情况下执行破坏性命令。
- 除非严格需要,否则不要以 root 用户运行脚本。
详细模式、检查清单和模板请参考 resources/implementation-playbook.md。
相关资源
resources/implementation-playbook.md:包含详细模式、检查清单和模板。
局限性
- 仅在任务明确符合上述范围时使用此技能。
- 不要将输出结果视为针对特定环境的验证、测试或专家评审的替代方案。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。