开始后,tailboxbg的内容不会刷新

时间:2019-10-25 09:04:08

标签: bash dialog

我正在使用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在程序终止后立即进入下一步,这需要使用这种解决方法的难看的骇客。

我做错什么了吗?

谢谢。

0 个答案:

没有答案