在我的Bash脚本中,我希望确保脚本一旦出现错误就立即退出。(例如,在执行失败的
现在,我还想在某些脚本中执行一些清理代码。从this blog post中我了解到:
我得到的输出是
cd some_directory
之后避免错误地使用rm -f *
。)因此,我总是为bash使用-e
标志。现在,我还想在某些脚本中执行一些清理代码。从this blog post中我了解到:
#!/bin/bash
cd invalid_directory
echo ':('
function clean_up {
echo "> clean_up"
exit 0
}
trap clean_up EXIT
我得到的输出是
./test.sh: line 3: cd: invalid_directory: No such file or directory
:(
> clean_up
所以它做了广告中所说的事情。然而,当在bash中使用-e
时,我只得到
./test.sh: line 3: cd: invalid_directory: No such file or directory
因此,该脚本在不调用 clean_up
的情况下退出。
我如何让Bash脚本在出现错误时退出,并每次调用清理脚本?
trap clean_up ERR
吗? - BiffenERR
并不能解决问题。 - Nico Schlömer