我正在尝试编写一个 bash 脚本,在实际调用之前“包装”用户想要调用的任何内容(及其参数)以获取固定文件。
澄清一下:我有一个“ConfigureMyEnvironment.bash”脚本,它必须在启动某些可执行文件之前获取,所以我想要一个“LaunchInMyEnvironment.bash”脚本,您可以使用它:
LaunchInMyEnvironment <whatever_executable_i_want_to_wrap> arg0 arg1 arg2
我尝试了以下 LaunchInMyEnvironment.bash:
#!/usr/bin/bash
launchee="$@"
if [ -e ConfigureMyEnvironment.bash ];
then source ConfigureMyEnvironment.bash;
fi
exec "$launchee"
我必须使用“launchee”变量来保存 $@ var,因为在执行源代码后,$@ 变为空。
无论如何,这不起作用并且失败如下:
myhost $ LaunchInMyEnvironment my_executable -h
myhost $ /home/me/LaunchInMyEnvironment.bash: line 7: /home/bin/my_executable -h: No such file or directory
myhost $ /home/me/LaunchInMyEnvironment.bash: line 7: exec: /home/bin/my_executable -h: cannot execute: No such file or directory
也就是说,“-h”参数似乎被视为可执行文件名的一部分,而不是参数……但这对我来说并没有真正意义。 我也尝试使用 $* 而不是 $@,但没有更好的结果。
我做错了什么?
安德里亚。
最佳答案
您是否尝试过删除 exec 命令中的双引号?
关于bash - 在启动可执行文件之前在 bash 中获取脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606749/