如果一个Bash脚本使用了
例如:
set -e
,并且脚本中的某个命令返回了错误,我该如何在脚本退出前进行一些清理操作?例如:
#!/bin/bash
set -e
mkdir /tmp/foo
# ... do stuff ...
rm -r /tmp/foo
如果在... do stuff ...
中的某个命令失败,我该如何确保/tmp/foo
被删除?
trap cleanup EXIT
,当脚本中的命令没有返回错误时, cleanup 函数也会执行.... 另一方面,如果使用例如trap cleanup ERR
,则只有在出现错误时才会执行 cleanup 函数,如果没有错误,则不会执行。更多信息请参见 https://dev59.com/XYTba4cB1Zd3GeqP1Bfr#26261518。 - Abdull