pie*_*nvc 3 bash is-empty bash-trap
我已经使用 trap 函数有一段时间了,但遇到了一个我不明白的问题。
这是一个代表:
err_report() {
echo -e "ERROR LINE $1"
exit 1;
}
trap 'err_report ${LINENO}' ERR
existing=$(echo test | grep -oP "x")
Run Code Online (Sandbox Code Playgroud)
这将引发错误,因为 grep 的结果为空。当我在没有陷阱的情况下运行代码时,一切正常。我尝试设置set +u但没有帮助..
我在这里做错了什么?
谢谢
当grep无法匹配任何内容时,它将以非零退出状态退出,从而触发陷阱ERR。由于您对此处的退出状态不感兴趣grep,因此应该可以解决问题:
existing=$(echo test | grep -oP 'x' || true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |