Продолжаю писать свой скрипт на автоматическую установку одного дистрибутива. Решил заменить последовательность команд с приглашением на ввод на диалоговые окна с помощью программы
dialog.
Поскольку это скрипт установки, то я подумал, что нужен красивый прогресс бар. Решил использовать
--gauge.
Я решил, что всё время установки прогресс бар должен находиться на фоне, пока тем временем будут появляться диалоговые окна вроде yes/no или приглашения на ввод юзернейма, например.
Так вот, оформил я это так:
spoilerwhile [[ $i < 101 ]]
do
#some code
echo $((++i))
dialog --yesno text 50 50
#some code
echo $((++i))
done | dialog --title 'Test script' --gauge 'Running...' 6 60 0
1. То есть после каждой выполненной команды к прогресс бару должен добавляться
условно 1%.
2. При этом в фоне должны спокойно выполняться команды установки,
не выводя ничего на консоль.
3. Так же
должны были выводиться диалоговые окна, но при таком вызове, как я указал выше, прогресс бар просто замирает, а при клике на Enter, он снова становится активным (очевидно, новое окно невидимо, но интерактивно).
Пробовал различные связки с
--no-kill, --keep-window, --clear.
Вроде как ничего не помогло.
При связке диалоговых окон в цепь с помощью --and-widget всё работает нормально, но тогда возникают две проблемы:
1) Окна запускаются друг за другом. То есть следующее в цепи окно запустится после завершения прошлого (прогресс бара в моем случае).
2) Не понятно как тогда прибавлять процент.
Возможно описал немного сумбурно, но вроде понятно описал задачу. Главное решить задачу.
Спасибо заранее за помощь.