Відповіді:
Ви можете використовувати 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:
Caveat: на деяких платформах 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
EDIT: Для уточнення, якщо запустити seq $(stty size | cut -d' ' -f1)інші відповіді, залишиться перша половина результату, тоді як ця команда залишить другу половину (тобто останній вихід).