【发布时间】:2016-12-13 16:06:34
【问题描述】:
我使用通用过程来捕获和描述错误或异常情况,而不是通常的“2>...”错误构造。
我们的想法是有一个类似这个简化版本的程序:
function debug(){
echo "Fatal Error: $PWD:$BASH_SOURCE:$LINENO $*"
....
exit 1
}
然后,在这个例子中使用:
[ -z "$PARAMETER" ] && debug The parameter was not provided
问题是:
-
BASH_SOURCE是运行源。如果过程“调试”是全局的,那么这个想法是显示调用源。 -
LINENO是执行扩展的行,没有调用地址。
注意:BASH_SOURCE[0] 和 BASH_SOURCE[1] 提供程序源时的“一些帮助”。
这将用于在集中式错误消息程序中通知“用户”错误。这可能包括系统日志和其他日志文件中的帖子。但是,有些消息可能看起来很相似,并且知道在源代码中检测到错误的位置,帮助开发人员。
有什么方法可以在bash上获取调用栈?
【问题讨论】: