从陷阱处理程序(使用调用者)在bash中获取函数回溯

我知道你可以使用'调用者'在bash中获得函数调用的回溯:

#! /bin/bash
Backtrace () {
   echo "Backtrace is:"
   i=0
   while caller $i
   do
      i=$((i+1))
   done
}
myFunc () {
   Backtrace
}
myFunc

打印:

Backtrace is:
11 myFunc ./test.sh
13 main ./test.sh

我的问题是,可以说我有一个脚本,它使用'set -e'来终止任何未经检查的失败。 是否有可能获得脚本失败的行号(及其调用者)

我尝试过这样做:陷阱'Backtrace'退出,但是这给了我'1主要./test.sh',而不是失败命令的行号


我不确定它是否可以正常工作,但可以尝试将ERR添加到您的trap信号列表中。 也许你的代码会在set -e东西接管之前被调用,在这种情况下,你将重新开始工作。

链接地址: http://www.djcxy.com/p/52253.html

上一篇: Get function backtrace in bash from trap handler (using caller)

下一篇: How to "Turn On" Version Editor in Xcode 4?