自定义脚本调用的可执行文件的可移植方法

自定义脚本调用的可执行文件的可移植方法

我有一个需要检测的脚本。假设它调用一个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如果还必须进行运行后检测,请跳过该位。

相关内容