← 中文资源

简体中文版本

Bash trap 临时目录清理

注册 trap 处理器在退出、信号和错误时清理,安全脚本。

阅读英文原文

示例说明

注册 trap 处理器在退出、信号和错误时清理,安全脚本。本示例属于安全边界场景,提供可直接复制使用的bash代码片段,附带边界条件与使用注意事项。

技术要点

  • mktemp -d 创建唯一临时目录
  • trap EXIT 退出时必定清理
  • set -euo 严格错误处理模式

代码解读

上述代码实现了Bash trap 临时目录清理的核心逻辑。注册 trap 处理器在退出、信号和错误时清理,安全脚本。代码中包含输入校验、核心算法和结果返回三个部分。关键在于正确处理边界情况,例如空输入、非法参数和并发场景。mktemp -d 创建唯一临时目录,trap EXIT 退出时必定清理。这些设计确保代码在生产环境中的健壮性。

使用建议

在实际项目中使用本示例时,建议先理解Bash trap 临时目录清理的适用场景与限制条件。set -euo 严格错误处理模式。根据具体业务需求调整参数配置,并编写单元测试覆盖正常路径与边界情况。本代码片段可直接集成到现有项目中,或作为参考实现自行扩展。

代码示例

#!/bin/bash
set -euo pipefail
TMPDIR=$(mktemp -d)
cleanup() {
  rm -rf "$TMPDIR"
  echo "cleaned up" >&2
}
trap cleanup EXIT
trap 'cleanup; exit 130' INT
trap 'cleanup; exit 143' TERM

echo "working in $TMPDIR"
touch "$TMPDIR/file.txt"
sleep 10
echo "done"