我有一个看起来像这样的脚本:
#!/bin/bash
set -e
tmpdir=$(mktemp -d)
pushd $tmpdir
trap 'popd && rm -rf $tmpdir' EXIT
# Business logic which may succeed or fail...
/bin/false
当它退出时,它popd
很好,但它不会删除临时目录。陷阱中似乎$tmpdir
没有解决,但我们如何克服呢?
我通过在$tmpdir
没有. 退出时:-rf
rm
rm: missing operand
而不是预期的
rm: cannot remove '/tmp/tmp.Y1SdoY5dSu/': Is a directory
没关系,这是一个错字:
$tmpdir
对比$tempdir
我正在运行的 ACTUAL 脚本相当于: