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
关于这段代码:
#!/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