我试图编写一个仅在运行时显示其输出到终端的脚本,就像'Less''或'SSH'命令一样。
当我启动所述脚本时,它将接管整个终端,打印需要打印的内容,然后当我退出脚本时,我将返回我的终端显示命令本身的行。当我滚动时,我不想看到我的脚本输出。
[snoopdougg@machine /home/snoopdougg/logs]$ ls
alog.log blog.log clog.log myScript.sh
[snoopdougg@machine /home/snoopdougg/logs]$ whoami
snoopdougg
[snoopdougg@machine /home/snoopdougg/logs]$ ./myScript.sh
[snoopdougg@machine /home/snoopdougg/logs]$
(就像什么都没发生的...但是MyScript.SH在运行时会向终端打印物品)。
我该怎么做?
您正在谈论备用屏幕,您可以使用一对终端属性smcup
和rmcup
访问。将其放入脚本中,并为一个小演示运行:
tput smcup
echo hello
sleep 5
tput rmcup
使用屏幕:
screen ./myScript.sh