bash:跳到终端的底部

Rol*_*uhs 5 bash

我想做退出时"top"命令执行的操作:

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

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

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

Wil*_*ell 9

tput cup $(tput lines) 0 
Run Code Online (Sandbox Code Playgroud)

通常,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

  • @Inian`tput`使用特定于其运行的tty的转义序列,这些字节是相关的.您可以使用`printf`来编写这些字节以获得相同的效果,但`tput`是一种更清晰的方法. (2认同)