我在一台 Linux 机器上,我需要一个 sh 脚本/命令,以便能够从终端窗口中删除所有内容(甚至显示为 PS1 变量的内容)并删除滚动功能。
基本上我需要一个空白终端,您只能在其中看到程序的输出,并且无法滚动。就像nano
命令的作用一样。
我尝试了各种方法,例如clear
、reset
、 ,tput reset
但是echo -en \\ec
所有这些方法(尽管清除了几乎所有内容)都使提示文本完好无损,这是我不想要的。我也不需要能够在终端中向上或向下滚动。
一个解决方案可能是打印一些相当于终端高度的换行符,但这样我可以向上滚动,最终我会看到提示文本,因此这与禁用滚动/滚动条相结合可能是一个解决方案,但是我不知道该怎么做,即使如此,我也不认为这是一个“干净”的解决方案。
谢谢。
答案1
所有这些 [...] 都保持提示文本完好无损
不真实。他们都清空了屏幕(其中一些——小心!——做的不仅仅是这些)。然后,在它们运行完毕后,你的 shell 就会出现,并且打印另一个提示。如果您希望程序在清晰的屏幕上运行,您应该在运行该clear
命令的同一命令行或脚本中运行它,前交互式 shell 提示输入另一个命令行。
清除 ;某个程序
什么
nano
命令的作用
nano
属于全屏 TUI 程序mc
,以及、less
、nvim
、tin
等程序。此类程序的作用是使用 termcap/terminfo 数据库来获取将终端切换到或退出的控制序列。光标寻址方式,它们在启动和拆除用户界面时发送到终端。正常情况下,终端处于滚动模式。
对于某些终端类型,切换到光标寻址模式会切换到备用屏幕缓冲区,并且备用屏幕缓冲区没有回滚,因此没有滚动条小部件。不能保证所有终端类型都具有此行为,因为并非所有终端类型都有备用屏幕缓冲区。