関数が呼び出されたファイルと行番号を見つける方法を見つけようとしています。関数は、私のスクリプトによって供給されているライブラリ ファイルにあります。
ファイル1:
$source file2
$warn_me "Error: You didn't do something"
ファイル2:
$function warn_me() {
$ message=????
$ echo ${message}
$}
目的の出力: $: file1:Line 2: エラー: 何かをしていません
関数呼び出しはすでに多くのファイルで何度も発生しているため、それを変更せずにこれを行う方法を見つけようとしています。
以前は、 warn_me 関数はそれを使用するすべてのファイルで定義されていましたが、これは次のように処理されていました。
$local message="$BASH_SOURCE:(""${BASH_LINENO}): ""$*"