Tôi đang cố gắng tìm một cách để tìm ra tệp và số dòng mà hàm được gọi từ đó. Hàm này nằm trong tệp thư viện đang được tập lệnh của tôi cung cấp.Bash: Tìm số dòng của cuộc gọi hàm từ tìm nguồn cung ứng tập tin
file1:
$source file2
$warn_me "Error: You didn't do something"
file2:
$function warn_me() {
$ message=????
$ echo ${message}
$}
Output mong muốn:$: file1: Dòng 2: Lỗi: Bạn không làm điều gì đó
Dấu chấm câu cuộc gọi ion đã xảy ra nhiều lần trong nhiều tệp nên tôi đang cố gắng tìm cách để làm điều này mà không thay đổi điều đó.
Trước đây chức năng warn_me được định nghĩa trong mỗi tập tin mà sử dụng nó và điều này đã được đưa về chăm sóc như vậy:
$local message="$BASH_SOURCE:(""${BASH_LINENO}): ""$*"
Cảm ơn, tôi đã thay thế dòng bằng: $ local message = "$ BASH_SOURCE [1] :(" "$ {BASH_LINENO}):" "$ *" – spizzak