我怎样才能让 bash 脚本像“man”一样显示其输出,而不是填满终端?

我怎样才能让 bash 脚本像“man”一样显示其输出,而不是填满终端?

例如 -man在终端中运行。我不知道他们是怎么做到的 - 但它的运行方式是不会将所有内容输出到终端 - 当你按下时q它就会消失,然后返回到终端(并返回我们之前使用的所有输出)

简而言之,这就是我想要的:

$ ./myscript.sh

它变成了这样:

Hello!
Please press q to make this go away!

按下后Q

$ ./myscript.sh
$

我知道这是可能的,但我不知道它是如何工作的。这是否与保存之前的输出并在终止后将其打印回终端有关myscript.sh?如果是,怎么做?如果不是,又该怎么做?

答案1

正如本文所述线tput smcup,您可以使用和切换屏幕,tput rmcup并将其包装在 while 循环中,如下所示:

tput smcup


#Do stuff here


echo "Press Q to quit"
while true
do 
  read -n 1 -s
  if [[ $REPLY =~ ^[Qq]$ ]]
  then
    tput rmcup
  fi
done

相关内容