bash - 在启动可执行文件之前在 bash 中获取脚本文件

标签 bash exec word-wrap

我正在尝试编写一个 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/

相关文章:

bash - 删除sed中带有特殊字符的特定字符范围

perl - 在 shell/Perl 脚本中保存密码的最佳实践?

c - 如何模拟进程运行?

c - execvp ("/usr/bin/bc",arg,env)

linux - 输出重定向应该重新创建目标文件

linux - Bash "source"命令返回错误的连接字符串

golang exec后台进程并获取它的pid

html - 如何在最后可能的空白处换行 HTML 列表

github - 将 GitHub 的 'soft wrap' 选项设置为默认开启

c++ - 使用 ctypes : undefined symbol 包装 C++