我想使用“./application_name”启动多个应用程序,每个应用程序都在单独的终端中,我如何在 bash 脚本中执行此操作。
问问题
4242 次
1 回答
4
我不确定我是否理解您的要求,但这可能是您需要的:
x-terminal-emulator -e "./application_name [arguments]" &
这将在后台启动一个新的终端模拟器,它将运行给定的命令而不是 shell。
如果您的系统没有x-terminal-emulator
别名,请替换实际终端仿真器的名称,例如xterm
or 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 回答