Bash 脚本编写

bash-scripting
分类编程
作者Agentic Awesome Skills 社区
许可MIT
评分4.80/5
使用11.9K

Bash 脚本编写工作流

概述

这是一个专门用于创建健壮、生产级 Bash 脚本的工作流,涵盖了防御性编程模式、全面的错误处理和自动化测试。

何时使用此工作流

在以下场景中使用此工作流:

  • 创建自动化脚本

  • 编写系统管理工具

  • 构建部署脚本

  • 开发备份解决方案

  • 创建 CI/CD 脚本

工作流阶段

阶段 1:脚本设计

#### 调用的技能

  • bash-pro - 专业脚本编写

  • bash-defensive-patterns - 防御性模式

#### 执行动作
1. 定义脚本目的
2. 确定输入/输出
3. 规划错误处理
4. 设计日志策略
5. 记录需求文档

#### 可复制提示词

code
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)

#### 可复制提示词

code
Use @bash-defensive-patterns to implement strict mode and error handling

阶段 3:核心实现

#### 调用的技能

  • bash-linux - Linux 命令

  • linux-shell-scripting - Shell 脚本编写

#### 执行动作
1. 实现主函数
2. 添加输入验证
3. 创建辅助函数
4. 处理边缘情况
5. 添加进度指示器

#### 可复制提示词

code
Use @bash-linux to implement system commands

阶段 4:错误处理

#### 调用的技能

  • bash-defensive-patterns - 错误处理

  • error-handling-patterns - 错误模式

#### 执行动作
1. 添加 trap 处理器
2. 实现重试逻辑
3. 创建错误消息
4. 设置退出状态码
5. 添加回滚能力

#### 可复制提示词

code
Use @bash-defensive-patterns to add comprehensive error handling

阶段 5:日志记录

#### 调用的技能

  • bash-pro - 日志模式

#### 执行动作
1. 创建日志函数
2. 添加日志级别
3. 实现时间戳
4. 配置日志轮转
5. 添加调试模式

#### 可复制提示词

code
Use @bash-pro to implement structured logging

阶段 6:测试

#### 调用的技能

  • bats-testing-patterns - Bats 测试

  • shellcheck-configuration - ShellCheck

#### 执行动作
1. 编写 Bats 测试
2. 运行 ShellCheck
3. 测试边缘情况
4. 验证错误处理
5. 使用不同输入进行测试

#### 可复制提示词

code
Use @bats-testing-patterns to write script tests

code
Use @shellcheck-configuration to lint bash script

阶段 7:文档编写

#### 调用的技能

  • documentation-templates - 文档模板

#### 执行动作
1. 添加脚本头部信息
2. 为函数编写文档
3. 创建使用示例
4. 列出依赖项
5. 添加故障排除章节

#### 可复制提示词

code
Use @documentation-templates to document bash script

脚本模板

bash
#!/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 自动化

局限性

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