Ответы:
Вы можете использовать tput
для перемещения курсора на заданную строку на экране, например,
tput cup 11 0
переместить его в двенадцатую строку (значения отсчитываются от нуля).
В том же ключе, вы можете использовать tput
для очистки от этой позиции до конца экрана, используя эту ed
возможность. Объединение,
tput cup 11 0 && tput ed
может быть то, что хотел.
Если вы хотите перейти к метке на полпути на экране, первое число, возвращенное
stty size
это (в большинстве систем) количество строк экрана. Добавляя это к команде:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
В clear
программе отличается от tput ed
:
Предостережение: на некоторых платформах tput ed
может не работать из-за проблем, исправленных давно. В этих случаях обновление конфигурации curses / ncurses решит проблему.
Если количество строк нечетное, тогда tput cup
очищается вся страница.
написание этого должно исправить это:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed
Если вы заинтересованы в очистке нижней части экрана при сохранении остальных, это будет работать:
half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed
РЕДАКТИРОВАТЬ: Чтобы уточнить, если вы запустите seq $(stty size | cut -d' ' -f1)
другие ответы оставят первую половину вывода, в то время как эта команда покинет вторую половину (то есть, самый последний вывод).