| 用途 | 捕获信号与 EXIT/ERR 做清理与善后 |
|---|---|
| 语法 | trap '命令' 信号... / trap - 取消 |
| 常用 | EXIT 退出 INT/TERM 中断 HUP 挂断 ERR 命令失败 |
基础清理
基础清理
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT # 无论怎么退出都清理优雅退出与错误定位
优雅退出与错误定位
trap 'echo "[中断] 正在退出"; exit 130' INT TERM
trap 'echo "[ERR] line $LINENO: $BASH_COMMAND" >&2' ERR
set -euo pipefail # 配合 ERR 陷阱trap - EXIT 可撤销;子 shell 里设置的 trap 只存在于子 shell 内。