我正在使用dialog
构建复杂的UI。在某个时候,我启动了一个程序,该程序将简短的日志(即脚本的当前步骤)输出到stdout
,同时将当前步骤的完整日志写入文件。
自然,我使用--prgbox
来显示第一个(简短的)输出,而使用--tailboxbg
来混合在单独的小部件中显示当前步骤的完整日志。它似乎确实起作用,但是--tailboxbg
的内容会在开始时显示(如果文件已包含数据),但是它永远不会更新。
测试此行为的简单方法:
while true; do
echo test >> /tmp/dialog-sample-file.txt
sleep 1
done
yes
是一个连续输出y
的程序,如果它不在您的计算机上):dialog \
--begin 1 1 \
--tailboxbg /tmp/dialog-sample-file.txt 15 15 \
--and-widget --begin 16 1 \
--prgbox yes 15 15
prgbox
可以正确显示y
,但是tailboxbg
永远不会更新。一个烦人的解决方法是使用两个tailboxbg
和一个阻止窗口小部件(例如--msgbox
)。由于某种原因,在这种情况下,tailboxbg
已正确更新。但是我希望我的UI在程序终止后立即进入下一步,这需要使用这种解决方法的难看的骇客。
我做错什么了吗?
谢谢。