Bash - 对话框消息框管道进入仪表

Bash - Dialog msgbox piping into gauge

关于这段代码:

#!/bin/bash

for i in {1..50}; do
   #if [ ! $(jobs -rp | grep $pid) ]; then
      dialog --msgbox "Instance initilation failure!" 0 0

   #   return 1
   #fi

   sleep 1
   echo $((i * 2))
done | dialog --title "Initiating instance" --gauge "Please wait..." 10 60 0

dialog --msgbox 正在通过管道传输到 gauge 中,因此仪表无法正常工作,消息框也不会出现。

是否可以避免这种情况的发生?要显示消息框,然后输入 return?

也许只是将对话调用放在循环中。 我建议如下:

#!/bin/bash

for i in {1..5}; do
   #if [ ! $(jobs -rp | grep $pid) ]; then
        dialog --msgbox '"Instance initilation failure!"' 0 0

   #   return 1
   #fi
   (
        echo "$((i * 2))"
        sleep 1
   ) | dialog --title "Initiating instance" --gauge "Please wait..." 10 60 0
done