Как создать диалоговый виджет для консоли Linux (не X, а «терминальной» консоли), который бы отображал обратный отсчет в секундах рядом с виджетом, который может быть списком меню или текстовым полем?
В идеале это может быть отдельная программа, такая как диалог, которая предоставляет параметры для управления ее поведением.
Когда обратный отсчет достигает 0, возвращается выбранное значение виджета. Может быть значение по умолчанию, если человек не присутствует (или человек предпочитает значение по умолчанию). Такие загрузчики, как grub и lilo, уже могут это делать. Я просмотрел справочную страницу диалога и не смог найти этот набор функций.
Пока пробовал:
dialog --timeout 30 --menu 'Menu Title' 20 60 3 'A' 'Choose A' 'B' 'Choose B' 'C' 'Choose C'
близко, но не показывает 30-секундный таймер, тикающий вниз.
dialog --pause 'Hurry!' 10 60 30 --
показывает сообщение и ок / отмена при работающем таймере, но является только промежуточным, а не для пользовательского ввода.
Возможно объединить несколько строк следующим образом:
dialog --menu 'Menu Title' 10 60 3 'A' 'Choose A' 'B' 'Choose B' 'C' 'Choose C' --pause 'Hurry up' 10 60 30
но это показывает, что виджеты последовательно, а не объединены на одной странице. Здесь после ответа по меню без таймера вы получите сообщение с таймером.