找到调用我的 bash 脚本的文件或代码行

Find the file or line of code that is calling my bash script

我试图找到 what/where 正在调用我的 bash 脚本。到目前为止,我已经在 bash 脚本中插入了“pstree -la”和“systemctl status”命令。我看到调用我的脚本的父进程,但它无法帮助我找到实际调用我的脚本的文件或代码行。

有人有建议吗?

假设您在 Linux,请查看 /proc/$PPID/cmdline 以查看该程序是如何被调用的。请注意,文件使用空字节来分隔单词。

read -r -d '' parentProgram < /proc/$PPID/cmdline
echo "I was invoked by '$parentProgram'"

如果没有完整列出父程序的完整路径,请使用locate帮助您搜索。

您可以获取命令行文件中的所有参数:

mapfile -t cmd < <(tr '[=11=]' '\n' < /proc/$PPID/cmdline)
declare -p cmd