用途:该技能提供编写可投入生产的 Bash 脚本的系统性指导,通过防御式编程、错误处理与安全实践,避免常见陷阱并提升可靠性。适用于编写生产自动化脚本、CI/CD 流水线脚本、系统管理工具、容错部署自动化、需安全处理边界情况的脚本、可维护的 Shell 脚本库、完整的日志与监控,以及跨平台运行的脚本。
核心防御原则:脚本开头启用严格模式,即 #!/bin/bash 配合 set -Eeuo pipefail;其中 set -E 让函数继承 ERR trap,set -e 遇错退出,set -u 引用未定义变量即退出,set -o pipefail 使管道中任一命令失败即视为失败。使用 trap 在出错或退出时输出错误行号并执行清理。变量始终加引号防止分词与通配,用 ${VAR:?message} 强制必需变量。数组迭代用 "${items[@]}",读取输出用 mapfile -t。条件判断在 Bash 中用 [[ ]],需 POSIX 兼容时用 [ ]。
主要能力(基础模式):安全识别脚本所在目录(基于 BASH_SOURCE 与 pwd -P);函数模板包含参数校验、局部只读变量与错误返回;安全处理临时文件(mktemp -d 配合 trap 清理);用 case 与 while 解析参数并生成 usage;结构化日志函数输出时间戳与级别,DEBUG 受环境变量控制;用 trap 捕获 SIGTERM/SIGINT 并优雅终止后台进程;安全文件操作含 mv、rm -rI 与原子写入(先写临时文件再重命名);幂等设计(目录已存在则跳过);安全命令替换优先用 $()、command -v 与 NUL 安全迭代;dry-run 模式通过封装 run_cmd 预览将执行的命令。
进阶技巧与最佳实践:命名参数解析(--input= 形式)、依赖检查(command -v 检测 jq、curl、git 等)、始终加引号、实现错误捕获与输入校验、函数命名带前缀、支持 dry-run、安全临时文件、设计幂等、记录依赖与最低版本、测试错误路径、用 printf 替代 echo。
限制:资料未提供该技能的具体安装命令、运行环境要求、是否收费及平台支持范围,暂未提供。使用前需自行确认 Bash 版本与目标平台兼容性。