在 bash 中的 for 循环中打开多个终端

在 bash 中的 for 循环中打开多个终端

最近我在 Ubuntu 上改成了lxde。切换后,我的 也变成x-terminal-emulatorlxterm

我的脚本正在执行以下操作:

执行 for 循环并打开一个新的终端窗口,然后在该终端中运行脚本。它会同时打开多个终端并在所有不同的窗口中运行该脚本。

切换到后,lxde它将循环并等待每个终端窗口完成脚本,然后启动下一个终端窗口。我希望它能做它正在做的事情。

我通过改回 解决了这个问题x-terminal-emulatorgnome-terminal现在它工作正常。但是,这是一个少数人使用的脚本系统,他们都在使用不同的环境和终端仿真器。我如何确保它适用于所有不同的终端仿真器,或者至少适用于xterm每个人都有的终端仿真器。


代码片段:

for blah in something
do
    x-terminal-emulator -e bash my_script.sh
done

答案1

这应该可以

for blah in something
do
    x-terminal-emulator -e bash my_script.sh &
done

&末尾的& 符号 ( ) 使命令“在后台”运行。这意味着下一个命令(下一个循环迭代)可以立即开始执行,而无需等待第一个命令完成。

请注意,如果数量很大,可能会导致系统崩溃something。因为一堆终端将尝试my_script.sh同时运行。

如果您想保持终端打开以读取输出,请参见此处:https://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution/3531426#3531426

相关内容