Réponses:
Vous pouvez utiliser tput
pour déplacer le curseur sur une ligne donnée de l'écran, par exemple,
tput cup 11 0
pour le déplacer jusqu'à la douzième ligne (les valeurs comptent à partir de zéro).
Dans le même ordre d'idées, vous pouvez utiliser tput
pour effacer de cette position jusqu'à la fin de l'écran, en utilisant la ed
capacité. Combiner,
tput cup 11 0 && tput ed
pourrait être ce que l'on voulait.
Si vous voulez aller à mi-chemin sur l'écran, le premier chiffre renvoyé par
stty size
est (sur la plupart des systèmes) le nombre de lignes de l'écran. Ajout de cela à la commande:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
Le clear
programme diffère de tput ed
:
Avertissement: sur certaines plates tput ed
- formes, il est possible que certaines fonctionnalités ne fonctionnent pas en raison de problèmes résolus depuis longtemps. Dans ces cas, la mise à niveau de votre configuration curses / ncurses résoudra le problème.
Si le nombre de lignes est impair, tput cup
efface toute la page.
l'écrire comme ceci devrait corriger cela:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed
Si vous souhaitez effacer la moitié inférieure de l'écran tout en conservant le reste, cela fonctionnera:
half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed
EDIT: Pour clarifier, si vous exécutez seq $(stty size | cut -d' ' -f1)
les autres réponses laisseront la première moitié de la sortie, tandis que cette commande laissera la seconde moitié (c'est-à-dire la sortie la plus récente).