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

时间:2019-04-13 15:06:45

标签: bash gnome-terminal

我基本上需要自动在单独的终端中运行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显示在终端中,但实际上并未运行。

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

根据{{​​3}},

自我答案从问题移到了社区Wiki答案:

以下内容符合预期,仅使第一个命令保持打开状态,而使第二个命令循环运行:

COMMAND1 &
while :
do
    sleep 15
    gnome-terminal -- timeout 7 COMMAND2 &&
    sleep 30
done