【发布时间】:2019-03-10 04:29:13
【问题描述】:
我正在尝试找到一种方法来找出调用函数的文件和行号。该函数位于我的脚本所获取的库文件中。
文件 1:
$source file2
$warn_me "Error: You didn't do something"
文件2:
$function warn_me() {
$ message=????
$ echo ${message}
$}
期望的输出: $: file1:Line 2: Error: You didn't do something
函数调用已经在许多文件中发生了很多次,所以我试图找到一种方法来做到这一点而不改变它。
以前,warn_me 函数是在每个使用它的文件中定义的,它的处理方式如下:
$local message="$BASH_SOURCE:(""${BASH_LINENO}): ""$*"
【问题讨论】:
-
在此处查看日志记录和错误处理实现:github.com/codeforester/base/blob/master/lib/stdlib.sh。它使用 BASH_SOURCE 和 BASH_LINENO 数组。
-
@codeforester - 杰出!