Я использую dialog
для создания сложного интерфейса. В какой-то момент я запускаю программу, которая выводит краткие журналы (т.е. текущий шаг сценария) в 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
правильно обновляются. Но я хочу, чтобы мой пользовательский интерфейс перешел к следующему шагу, как только программа будет завершена, что потребует уродливых хаков с этим обходным путем.
Я что-то не так делаю?
Заранее спасибо.