trap
#!/bin/bash
scratch=$(mktemp -d -t tmp.XXXXXXXXXX)
# do somethings
rm -rf "$scratch"
#!/bin/bash
scratch=$(mktemp -d -t tmp.XXXXXXXXXX)
function finish {
rm -rf "$scratch"
}
trap finish EXIT
# do somethings
方法二确保 finish 函数在脚本退出时必然被执行
脚本错误退出,如执行错误或语法错误,可以及时清理资源
脚本修改逻辑,如增删返回或退出逻辑,也可以清理资源
避免了在各个返回和退出点复制粘贴清理代码,精简代码