Effacer la moitié de l'écran de la command line

Y at-il un moyen d'effacer le terminal, mais au lieu de laisser l'invite en haut de l'écran laisse-le au milieu? Il semble clear ignore fondamentalement tous les parameters de command line.

Je pensais qu'il y aurait un moyen de le faire avec tput mais ne peut pas en find un.

Vous pouvez utiliser tput pour déplacer le slider sur une ligne donnée de l'écran, par exemple,

 tput cup 11 0 

pour le déplacer à la douzième ligne (les valeurs countnt de zéro).

Sur la même ligne, vous pouvez utiliser tput pour effacer de cette position à la fin de l'écran, en utilisant la capacité ed . Combiner,

 tput cup 11 0 && tput ed 

pourrait être ce qui était voulu.

Si vous voulez aller à la marque à mi-path sur l'écran, le premier nombre renvoyé par

 stty size 

est (sur la plupart des systèmes) le nombre de lignes de l'écran. Ajouter cela à la command:

 tput cup $(stty size|awk '{print $1/2;}') 0 && tput ed 

Le programme clear diffère de tput ed :

  • il déplace le slider sur la position initiale (en haut à gauche) et
  • efface de ce point à la fin de l'écran.