Bash 防御性编程模式

bash-defensive-patterns
分类写作
作者Agentic Awesome Skills 社区
许可MIT
评分4.80/5
使用5.6K

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:包含详细模式、检查清单和模板。

局限性

  • 仅在任务明确符合上述范围时使用此技能。
  • 不要将输出结果视为针对特定环境的验证、测试或专家评审的替代方案。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。