在循环中运行gnome-terminal不会阻止等待程序完成

问题描述 投票:-1回答:1

我基本上需要在不同的终端中自动运行2个命令。

while :
do
    timeout 10 gnome-terminal --geometry=95x56 -e "COMMAND1" &&
    timeout 7 gnome-terminal -e "COMMAND2" &&
    sleep 30
done

预期行为:

  • 终端打开,运行COMMAND1 10秒钟,然后关闭
  • 第二个终端打开,运行COMMAND2 7秒钟,然后关闭
  • 30秒过去了
  • 循环重复

实际行为:

  • COMMAND1和COMMAND2都同时启动
  • COMMAND1显示在终端中,但实际上并未运行。

这里发生了什么?

bash gnome-terminal
1个回答
0
投票

根据What is the appropriate action when the answer to a question is added to the question itself?,自我回答从问题转移到社区Wiki答案:

如下所示,只允许第一个命令保持打开状态,而在循环中运行第二个命令:

COMMAND1 &
while :
do
    sleep 15
    gnome-terminal -- timeout 7 COMMAND2 &&
    sleep 30
done
© www.soinside.com 2019 - 2024. All rights reserved.