Например apt-get update
, после выполнения он отображается
Reading package lists... 82%
с изменением процента в той же строке.
Как это достигается? Можно ли это использовать в bash-скрипте?
решение1
Терминалы понимают escape-последовательности для перемещения курсора, изменения цвета текста и других действий. Эти escape-последовательности записываются вtermcapитерминфобазы данных, поскольку они различаются в зависимости от типа терминала (хотя большинство типов терминалов сегодня в основном реализуют одни и те же управляющие последовательности).
Вы можете записать полный вывод приложения с помощьюсценарийполезность.
script -c 'apt-get update' apt-get.script
apt-get
упрощает задачу: используется только управляющий символвозврат каретки(известная как CR, Ctrl+M, \r
, …), которая перемещает курсор в начало текущей строки.
решение2
если вы еще не вывели новую строку (например: использовали-нв команде echo) команда:
echo -e "\r\033["
сделает свое дело.