找到调用我的 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
我试图找到 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