У echo есть возможность удалять одну строку из stdout и получается, что если у меня команда выдает одну строку, то я могу делать вывод этой команды постоянно в одной строке, к примеру:
while true;do echo -en "`admin_powerpc -F 192.168.1.208:11 -Q|awk '{if(index($0,"BPS")){print $NF " Byte\t" $NF*8 " bits\t" $NF*8/1024 " Kbit\t" $NF*8/1024/1024 " Mbit"}}'`\r";sleep 5;done
получаю:
55392505 Byte 443140040 bits 432754 Kbit 422.611 Mbit
Вопрос:
если результат команды, не одна строка, а например 15, возможно ли каким-то образом удалить (очистить) из stdout последние 15 строк, что бы результат выполнения команды выводился на том же месте?
Пример:
while true; do echo -en "`admin_powerpc -F 192.168.1.202:11 -Q|tail -15`\r\r\r\r";sleep 3;done
Такой вариант удаляет только одну строку.
sed '1,15d' - тоже не представляю как можно тут применить.
clear тоже не подходит
В идеале вывод должен быть похож на команду top
while true;do echo -en "`admin_powerpc -F 192.168.1.208:11 -Q|awk '{if(index($0,"BPS")){print $NF " Byte\t" $NF*8 " bits\t" $NF*8/1024 " Kbit\t" $NF*8/1024/1024 " Mbit"}}'`\r";sleep 5;done
получаю:
55392505 Byte 443140040 bits 432754 Kbit 422.611 Mbit
Вопрос:
если результат команды, не одна строка, а например 15, возможно ли каким-то образом удалить (очистить) из stdout последние 15 строк, что бы результат выполнения команды выводился на том же месте?
Пример:
while true; do echo -en "`admin_powerpc -F 192.168.1.202:11 -Q|tail -15`\r\r\r\r";sleep 3;done
Такой вариант удаляет только одну строку.
sed '1,15d' - тоже не представляю как можно тут применить.
clear тоже не подходит
В идеале вывод должен быть похож на команду top