用途:为 Shell 脚本提供健壮的错误处理、清理例程与调试模式,适用于需要可靠退出、资源回收和排错的 Bash 脚本开发。
主要能力: 退出码:列出常见退出码含义(0 成功、1 一般错误、2 命令误用、126 不可执行、127 未找到、128+N 致命信号、130 Ctrl+C);给出检查上一条命令状态、捕获退出状态并据此退出的写法。 Trap 清理:用 set -euo pipefail 配合 trap cleanup EXIT,清理临时文件并保留原始退出码;可分别处理 INT、TERM 等信号。最佳实践包括在 cleanup 中用 local exit_code=$? 保存并恢复退出码,以及用 || true 让可选清理不中断。 错误上报:错误信息统一写入 stderr,可定义 error、die 函数;支持基于 VERBOSE 环境变量的详细日志,带时间戳输出到 stderr。 防御性编程:用 require_command 检查 jq、curl、shellcheck 等依赖命令是否存在;校验参数数量、源文件与目标目录;用 mktemp 与 mktemp -d 创建安全临时文件/目录,并在 EXIT 时清理。 调试:可通过 DEBUG=1 或 -d 选项开启 set -x;用 set -x / set +x 只追踪特定代码段;可自定义 PS4 输出源文件、行号与函数名。 错误恢复:retry 函数按最大尝试次数与延迟重试命令;get_config 之类的回退模式在主配置缺失时尝试备用路径。
使用方式:在 Bash 脚本开头使用 set -euo pipefail,按需定义 cleanup、error、die、require_command、retry 等函数,用 trap 注册清理与信号处理,通过环境变量控制日志与调试开关。
限制:内容面向 Bash/Shell,示例依赖 bash、mktemp、trap、set -euo pipefail 等特性;其他 shell 的兼容性、具体版本要求及完整测试方式暂未提供。