例如 -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