Я использую Bash на Mac OS X, а также Lubuntu. Когда я делаю консольные приложения, меня раздражает то, что
clear
добавит целое (х-число) строк в консоль. А потом я переписываю экран, который отнимает много времени и неэффективен.
Вместо этого я ищу способ, чтобы приложение не создавало лишних строк и не переписывало символы, которые отображаются в данный момент. (как команда "top")
Например, моему приложению нужно, чтобы число в верхнем левом углу консоли увеличивалось как можно быстрее.
Пример № 1: Использование clear
#!/bin/bash
for i in `seq 1 1000000`
do
echo $i
clear
done
Это было бы здорово, кроме того, что он "мерцает", иногда зависает, тратит место на консоли и, как правило, выглядит ужасно.
Пример № 2: Использование Backspace
#!/bin/bash
echo -e "\033[8;5;10;t"
clear
echo -e -n "0"
for i in `seq 1 1000000`
do
echo -e -n "\b\b\b\b\b\b\b$i"
done
Он работает как шарм, не создает лишних линий и быстр, но его можно запускать только в маленьких окнах.
Пример № 3: Использование формулы переписывания, которую делают top и alsamixer.
Как бы я сделал этот пример?