use*_*ser 4 shell bash shell-script
我有一些脚本,脚本中的一些命令是这样的
./executable arg1 arg2 .. argn
我想将上面的命令更改为
LD_PRELOAD=/some/lib ./executable my_arg1 my_argn arg1 arg2 argn; some_other_command
更改脚本的一种方法,但我不想这样做,而是想拦截这些命令,更改这些命令并运行它们。我怎样才能做到这一点?
首先,将现有的可执行文件移动到新位置:
mv ./executable ./executable.original
Run Code Online (Sandbox Code Playgroud)
其次,在其中创建一个 shell 脚本。将以下命令放入名为的新文件中./executable
:
#!/bin/sh
LD_PRELOAD=/some/lib ./executable.original my_arg1 my_argn "$@"
some_other_command
Run Code Online (Sandbox Code Playgroud)
shell 将替换调用程序提供的"$@"
咒语。arg1 arg2 argn
第三,在新文件上设置执行位:
chmod a+rx ./executable
Run Code Online (Sandbox Code Playgroud)