说实话,我甚至不知道从哪里开始搜索.它是来自curses库的命令吗?它是ANSI转义序列吗?我应该捣乱吗?我被卡住了,任何指针都会非常有用.
编辑:我想澄清一点,我并不是在问“如何使用替代屏幕”.我正在寻找一种方法来保存终端命令历史.我的问题的一个可能的答案可能是“使用替代屏幕”. “什么是替代屏幕以及如何使用它”的问题是一个不同的问题,而这个问题又已经在其他地方发布了答案.谢谢 :)
解决方法 您应该使用备用屏幕终端功能.看到Using the “alternate screen” in a bash script
“如何使用备用屏幕”的答案:
这个例子应该说明:
#!/bin/sh: <<descShows the top of /etc/passwd on the terminal for 1 second and then restores the terminal to exactly how it wasdesctput smcup #save prevIoUs statehead -n$(tput lines) /etc/passwd #get a screenful of linessleep 1tput rmcup #restore prevIoUs state
这只能在终端上工作,具有smcup和rmcup功能(例如,不在linux控制台(=虚拟控制台)).
可以使用infocmp检查终端功能.
在不支持它的终端上,我的tput smcup只返回退出状态1而不输出转义序列.
注意:
如果您打算重定向输出,可能需要将转义序列直接写入/ dev / tty,以免弄乱它们的stdout:
exec 3>&1 #save old stdoutexec 1>/dev/tty #write directly to terminal by default#...cat /etc/passwd >&3 #write actual intended output to the original stdout#...总结
以上是内存溢出为你收集整理的linux – 保存并恢复终端内容全部内容,希望文章能够帮你解决linux – 保存并恢复终端内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)