我有一个需要检测的脚本。假设它调用一个foo
程序。
我可以定义foo
函数并将其导出到子 shell,从而提供检测调用foo
。仅当脚本在“兼容”外壳下执行时这才有效。
有更便携的解决方案吗?
答案1
使用外壳包装吗?
mv foo foo.real
cat >foo <<EOF
#!/bin/sh
... whatever instrumentation ...
exec foo.real "$@"
EOF
chmod +x foo
foo
如果需要调用,这将失败foo
,在这种情况下PATH
可能需要技巧,或者移动foo
到某个libexec
目录等。exec
如果还必须进行运行后检测,请跳过该位。