用途:该技能提供编写生产级 Bash 脚本的防御式编程指导,通过错误处理与安全实践避免常见陷阱,提升脚本可靠性。适用于编写生产自动化脚本、CI/CD 流水线脚本、系统管理工具、容错部署自动化、需安全处理边界情况的脚本、可维护的 shell 脚本库、日志与监控实现,以及需跨平台运行的脚本。
主要能力与核心原则:一是严格模式,脚本开头启用 set -Eeuo pipefail,其中 set -E 让函数继承 ERR 陷阱,set -e 遇错退出,set -u 引用未定义变量即退出,set -o pipefail 使管道中任一命令失败即失败。二是错误捕获与清理,用 trap 在 ERR 与 EXIT 时输出错误行号并清理临时目录。三是变量安全,始终加引号防止分词与通配,用 ${VAR:?message} 强制必填变量。四是数组安全,用 declare -a 与 "${items[@]}" 遍历,用 mapfile -t 或 readarray -t 读取输出。五是条件安全,Bash 用 [[ ]],POSIX 用 [ ],操作前先测试存在性。
基本模式:安全检测脚本目录(基于 BASH_SOURCE)、函数模板(local -r、输入校验、返回码)、临时文件处理(mktemp -d 配合 trap 清理)、健壮参数解析(while/case 处理长短选项与 --)、结构化日志(带时间戳与级别的 log_info/log_warn/log_error/log_debug)、信号编排(记录后台 PID,trap SIGTERM/SIGINT 后优雅终止并 wait)、安全文件操作(safe_move、safe_rmdir、原子写入)、幂等设计(ensure_directory、ensure_config)、安全命令替换($()、mapfile、NUL 安全遍历)、dry-run 支持(run_cmd 包装)。
进阶技巧:命名参数模式(--input=* 解析并校验必填项)、依赖检查(command -v 检测 jq、curl、git 等)。
最佳实践:始终启用严格模式、引用所有变量、使用 [[ ]]、实现错误陷阱、校验所有输入、用函数复用、结构化日志、支持 dry-run、安全处理临时文件、设计幂等、记录依赖、测试错误路径、用 command -v 而非 which、优先 printf。
限制:资料未提供该技能的安装方式、收费模式、平台支持范围与具体版本要求,暂未提供。