次のスクリプトがあります。
#!/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
次のコマンドを再実行して、.exit-rf
に含まれていないことを確認しましたrm
。
rm: missing operand
期待ではなく
rm: cannot remove '/tmp/tmp.Y1SdoY5dSu/': Is a directory
ベストアンサー1
気にしないでください。太田でした。
$tmpdir
そして$tempdir
私が実行した実際のスクリプトは次のとおりです。
#!/bin/bash
set -e
tmpdir=$(mktemp -d)
pushd $tmpdir
trap 'popd && rm -rf $tempdir' EXIT
# Business logic which may succeed or fail...
/bin/false