スクリプトによって呼び出される実行可能ファイルをカスタマイズする移植可能な方法

スクリプトによって呼び出される実行可能ファイルをカスタマイズする移植可能な方法

計測が必要なスクリプトがあります。プログラムを呼び出すとしましょうfoo

関数を定義fooし、それをサブシェルにエクスポートできるので、インスツルメントされた呼び出しを提供できます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実行後の検出も必要な場合は、このビットをスキップしてください。

おすすめ記事