bash:跳到终端的底部

时间:2018-04-09 12:40:13

标签: bash

我想做的事情是“top”命令在退出时执行的操作:

在屏幕上打印一些内容,然后跳到终端窗口的底部,以便提示位于底线。

(如果我只打印1000条空行,我将丢失我在屏幕上打印的内容,因此我需要一个更优雅的解决方案才能到达终端窗口的底部)

如何在bash中实现这一目标?

2 个答案:

答案 0 :(得分:7)

tput cup $(tput lines) 0 

通常,tput cup X Y将光标移动到位置X,Y(从左上角开始计数。)tput linestput li为您提供当前终端的最大X值。请注意tput li依赖于可能不存在的terminfo功能,但tput cup 1000 0应具有相同的效果(假设您的tty少于1000行!)如果要在屏幕上打印某些内容在某个特定的地方,真的没有必要跳到底部",你可以这样做:clear; tput cup 5 0; printf hello; sleep 1; tput cup 5 0; printf world; tput el; tput cup $(tput li) 0

答案 1 :(得分:0)

在bash中,你有包含终端大小的LINES和COLUMNS变量,当你调整终端窗口的大小时会更新这些变量。

我建议您根据自己的要求使用以下示例:

echo -ne "\E[${LINES};0H"

它使用ansi命令在终端上工作。