0

我想使用“./application_name”启动多个应用程序,每个应用程序都在单独的终端中,我如何在 bash 脚本中执行此操作。

4

1 回答 1

4

我不确定我是否理解您的要求,但这可能是您需要的:

x-terminal-emulator -e "./application_name [arguments]" &

这将在后台启动一个新的终端模拟器,它将运行给定的命令而不是 shell。

如果您的系统没有x-terminal-emulator别名,请替换实际终端仿真器的名称,例如xtermor gnome-terminal。他们(几乎)都支持这个-e选项。

当然,这要求您的 bash 脚本首先从 X11 会话内部运行(而不是从 cron 作业或类似的东西),否则将不会$DISPLAY出现新的终端仿真器。

编辑: 参数是否-e在外壳下执行或直接似乎取决于使用哪个终端仿真器。例如,xterm在 shell 下运行它,但gnome-terminal没有。这样做的结果是,您可能会也可能无法提供复合 shell 命令,cd foobar; ./something & wait例如-e. 作为那些不在shell 下运行命令的终端仿真器的解决方法,您可以使用-e 'sh -c "actual command"'. 特殊字符的正确引用会变得复杂,因为您有两个级别的引用,但可以做到。

于 2012-08-27T12:35:53.287 回答