Linux ERR后面的实际信号是什么
我在好几个地方(包括SO)读到,Linux ERR后面的实际信号是什么,linux,bash,error-handling,signals,bash-trap,Linux,Bash,Error Handling,Signals,Bash Trap,我在好几个地方(包括SO)读到,-e被认为是“糟糕的形式”,在出现任何错误时退出脚本都是不可靠的。处理错误的更好方法似乎是使用trap,例如: trap "echo there was an error; exit 1;" ERR 我似乎在手册页中找不到什么信号ERR?我假设它是SIGQUIT,但我不能确定 man 7 signal 只有您期望的正常信号SIGTERM SIGQUIT SIGINT等 man trap 引用了ERR信号,但似乎没有定义它 例如:“如果设置了错误陷阱,则在sh
-e
被认为是“糟糕的形式”,在出现任何错误时退出脚本都是不可靠的。处理错误的更好方法似乎是使用trap
,例如:
trap "echo there was an error; exit 1;" ERR
我似乎在手册页中找不到什么信号ERR
?我假设它是SIGQUIT
,但我不能确定
man 7 signal
只有您期望的正常信号SIGTERM SIGQUIT SIGINT
等
man trap
引用了ERR
信号,但似乎没有定义它
例如:“如果设置了错误陷阱,则在shell退出之前执行。
”
类似于man trap
,它引用了ERR
,但没有根据我所看到的来定义它
捷径ERR
后面的实际信号是什么?(在正常信号中,如man 7信号中所示)
我更喜欢捕获实际的信号名,而不是简写版本,尽管我意识到它们会产生相同的结果(捕获脚本中的命令中的任何错误,然后抛出到处理程序)。没有与陷阱
信号规范ERR
对应的信号
ERR
是由bash
内部实现的信号规范之一。[注意1]如果启用了trap ERR
,则bash将在与启用set-e
时退出的情况完全相同的情况下调用相应的处理程序。(因此,它不再比set-e更“可靠”,而是更加灵活。)
其他与任何信号不对应的特殊陷阱
名称有退出
、调试
和返回
帮助陷阱
将解释这些信号规范的含义
注意事项:
实际上,所有的信号规范都是通过bash
实现的,但是大多数都是通过bash
捕获信号然后执行信号处理程序来实现的。特殊的只是执行信号处理程序
man bash