我在几个地方(包括 SO)读过-e
被认为是“不良形式”的地方,并且在出现任何错误时退出脚本是不可靠的。处理错误的更好方法似乎是使用trap
,如下所示:
trap "echo there was an error; exit 1;" ERR
我似乎无法在手册页中找到ERR
实际上是什么信号?我假设它是SIGQUIT
,但我无法确定。
man 7 signal
仅具有您期望的正常信号SIGTERM SIGQUIT SIGINT
等。
man trap
有对ERR
信号的引用,但似乎没有定义它。
例如:“ A trap on ERR, if set, is executed before the shell exits.
”
man bash
类似于man trap
in that is 引用ERR
但没有根据我所看到的来定义它。
捷径背后的实际信号是ERR
什么?(在正常信号中,如 中所示man 7 signal
)。
我更喜欢捕获实际的信号名称而不是速记版本,尽管我意识到它们会产生相同的结果(从脚本中的命令中捕获任何错误然后抛出给处理程序)。