いくつかのスクリプトがあり、スクリプトのいくつかのコマンドは次のとおりです。
./executable arg1 arg2 .. argn
上記のコマンドを次に変更したいと思います。
LD_PRELOAD=/some/lib ./executable my_arg1 my_argn arg1 arg2 argn; some_other_command
スクリプトを変更する1つの方法ですが、そうしたくありません。このコマンドを傍受して変更して実行したいです。どうすればいいですか?
ベストアンサー1
まず、既存の実行可能ファイルを新しい場所に移動します。
mv ./executable ./executable.original
次に、その中にシェルスクリプトを作成します。次のコマンドを次の新しいファイルに入力します./executable
。
#!/bin/sh
LD_PRELOAD=/some/lib ./executable.original my_arg1 my_argn "$@"
some_other_command
シェルは"$@"
呼び出し元プログラムによってarg1 arg2 argn
提供される注文を置き換えます。
第三に、新しいファイルに実行ビットを設定します。
chmod a+rx ./executable