长话短说:我想跟踪调用某些可执行文件以跟踪某些系统行为的方式。假设我有一个可执行文件:
/usr/bin/do_stuff
Run Code Online (Sandbox Code Playgroud)
它实际上通过符号链接被许多不同的名称调用:
/usr/bin/make_tea -> /usr/bin/do_stuff
/usr/bin/make_coffee -> /usr/bin/do_stuff
Run Code Online (Sandbox Code Playgroud)
等等。显然,do_stuff
将使用它收到的第一个参数来确定实际采取的操作,其余参数将根据此进行处理。
我想记录曾经调用过/usr/bin/do_stuff
(以及完整的参数列表)。如果没有符号链接,我会干脆转移do_stuff
到do_stuff_real
写一个脚本
#!/bin/sh
echo "$0 $@" >> logfile
/usr/bin/do_stuff_real "$@"
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,它会检查它被调用的名称,这是行不通的。如何编写一个脚本来实现相同的功能,但仍然传递给do_stuff
正确的“可执行使用的名称”?
为了记录,为了避免这些行的答案:
do_stuff
用日志程序替换。shell-script ×1