最近我在 Ubuntu 上改成了lxde
。切换后,我的 也变成x-terminal-emulator
了lxterm
。
我的脚本正在执行以下操作:
执行 for 循环并打开一个新的终端窗口,然后在该终端中运行脚本。它会同时打开多个终端并在所有不同的窗口中运行该脚本。
切换到后,lxde
它将循环并等待每个终端窗口完成脚本,然后启动下一个终端窗口。我希望它能做它正在做的事情。
我通过改回 解决了这个问题x-terminal-emulator
。gnome-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