如果在管道的任何步骤中存在非零错误的情况下捕获到非零错误,则设置 bashpipefail
选项(通过)允许脚本失败。set -o pipefail
但是,我们遇到了SIGPIPE
错误(错误代码 141),其中数据被写入不再存在的管道。
有没有办法将 bash 设置为忽略SIGPIPE
错误,或者有没有办法编写一个错误处理程序来处理所有错误状态代码,比如 0 和 141?
例如,在 Python 中,我们可以添加:
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
将默认行为应用于SIGPIPE
错误:忽略它们(参见http://coding.derkeiler.com/Archive/Python/comp.lang.python/2004-06/3823.html)。
bash 中是否有一些类似的选项?