清除终端屏幕但保持视觉间距

时间:2017-01-10 21:11:32

标签: unix terminal tput

当我想在命令的一长串输出行之后提供视觉中断时,我通常运行clear以便终端清除屏幕,将我的提示放回到0,0同时保持历史(vs reset)。

问题在于,当我向上滚动时,终端现在回到输出的长行,历史上没有任何中断。

我想通过yes '' | head -n $(tput lines)“回显一个屏幕的空行”,然后我的光标位于屏幕的底部。所以我尝试运行clear,但它似乎删除了空行。我也试过了tput cup 0 0,但也删除了空行(我想通过“恢复”我的屏幕的空行值)。

我可以通过用yes而不是空字符串打印任何字符来强制空行,或者我可以在空行的末尾打印一些字符/消息。但现在我正在添加垃圾。

我唯一能够上班的是:

yes '' | head -n $(($(tput lines) * 2))
tput cup 0 0

还有其他方法或者这是我唯一的选择吗?

1 个答案:

答案 0 :(得分:0)

基本上是 - 您可以通过各种方式表达脚本,但大多数终端不允许使用一个可用于改进脚本的方面:向上滚动时,它们不会将空白行移动到滚动条中。所以你不能(例如)这样做:

tput cup $(tput lines)
tput indn $(($(tput lines) * 2))
tput cup 0 0
tput ed

因为indn(索引)所期望的空白行被忽略。