写 Bash 小脚本时,如果中间要落几个临时文件,我一般会把 mktemp -d 和 trap 放一起用,脚本正常结束或报错退出时都能清一下。
环境:bash 4+,Linux/macOS 都能试。新建 tmp-clean.sh:
#!/usr/bin/env bash
set -euo pipefail
tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT
printf 'hello temp\n' > "$tmpdir/data.txt"
cat "$tmpdir/data.txt"
echo "临时目录在脚本里存在:$tmpdir"
运行:
bash tmp-clean.sh
这个写法适合本地一次性处理文件。要注意 rm -rf 前面的变量一定要来自 mktemp -d 这种可控结果,别拿用户输入直接拼进去。