我知道您可以使用“调用者”来回溯 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”来终止任何未经检查的失败。是否可以获得脚本失败的行号(及其调用者)
我尝试过天真地做:trap 'Backtrace' EXIT,但这给了我 '1 main ./test.sh' 而不是失败命令的行号