Bash 脚本编写
Bash 脚本编写工作流
概述
这是一个专门用于创建健壮、生产级 Bash 脚本的工作流,涵盖了防御性编程模式、全面的错误处理和自动化测试。
何时使用此工作流
在以下场景中使用此工作流:
- 创建自动化脚本
- 编写系统管理工具
- 构建部署脚本
- 开发备份解决方案
- 创建 CI/CD 脚本
工作流阶段
阶段 1:脚本设计
#### 调用的技能
bash-pro- 专业脚本编写
bash-defensive-patterns- 防御性模式
#### 执行动作
1. 定义脚本目的
2. 确定输入/输出
3. 规划错误处理
4. 设计日志策略
5. 记录需求文档
#### 可复制提示词
Use @bash-pro to design production-ready bash script阶段 2:脚本结构
#### 调用的技能
bash-pro- 脚本结构
bash-defensive-patterns- 安全模式
#### 执行动作
1. 添加 shebang 和严格模式 (strict mode)
2. 创建 usage 函数
3. 实现参数解析
4. 设置日志记录
5. 添加清理处理器 (cleanup handlers)
#### 可复制提示词
Use @bash-defensive-patterns to implement strict mode and error handling阶段 3:核心实现
#### 调用的技能
bash-linux- Linux 命令
linux-shell-scripting- Shell 脚本编写
#### 执行动作
1. 实现主函数
2. 添加输入验证
3. 创建辅助函数
4. 处理边缘情况
5. 添加进度指示器
#### 可复制提示词
Use @bash-linux to implement system commands阶段 4:错误处理
#### 调用的技能
bash-defensive-patterns- 错误处理
error-handling-patterns- 错误模式
#### 执行动作
1. 添加 trap 处理器
2. 实现重试逻辑
3. 创建错误消息
4. 设置退出状态码
5. 添加回滚能力
#### 可复制提示词
Use @bash-defensive-patterns to add comprehensive error handling阶段 5:日志记录
#### 调用的技能
bash-pro- 日志模式
#### 执行动作
1. 创建日志函数
2. 添加日志级别
3. 实现时间戳
4. 配置日志轮转
5. 添加调试模式
#### 可复制提示词
Use @bash-pro to implement structured logging阶段 6:测试
#### 调用的技能
bats-testing-patterns- Bats 测试
shellcheck-configuration- ShellCheck
#### 执行动作
1. 编写 Bats 测试
2. 运行 ShellCheck
3. 测试边缘情况
4. 验证错误处理
5. 使用不同输入进行测试
#### 可复制提示词
Use @bats-testing-patterns to write script testsUse @shellcheck-configuration to lint bash script阶段 7:文档编写
#### 调用的技能
documentation-templates- 文档模板
#### 执行动作
1. 添加脚本头部信息
2. 为函数编写文档
3. 创建使用示例
4. 列出依赖项
5. 添加故障排除章节
#### 可复制提示词
Use @documentation-templates to document bash script脚本模板
#!/usr/bin/env bash
set -euo pipefail
readonly SCRIPT_NAME=$(basename "$0")
readonly SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; }
error() { log "ERROR: $*" >&2; exit 1; }
usage() { cat <<EOF
Usage: $SCRIPT_NAME [OPTIONS]
Options:
-h, --help Show help
-v, --v
EOF
}
erbose 详细输出
EOF
}
main() {
log "脚本已启动"
# 实现内容
log "脚本已完成"
}
main "$@"
``
质量门禁 (Quality Gates)
- [ ] 通过 ShellCheck 检查
- [ ] 通过 Bats 测试
- [ ] 错误处理机制正常
- [ ] 日志功能正常
- [ ] 文档已完备
相关工作流包
- os-scripting
- 操作系统脚本编写
- linux-troubleshooting
- Linux 故障排查
- cloud-devops` - DevOps 自动化
局限性
- 仅在任务明确符合上述范围时使用此技能。
- 不要将输出结果视为针对特定环境的验证、测试或专家评审的替代方案。
- 如果缺少必要的输入、权限、安全边界或验收标准,请停止并请求澄清。