2013-01-08 87 views
5

即使使用Google搜索,我也很难,因为我不知道正确的关键字。一些命令行应用程序(如vi和更少)接管整个控制台屏幕并向用户呈现交互式界面。退出此类应用程序后,屏幕返回到应用程序启动之前的状态。我想编写一个以这种方式运行的程序,但是我再也不知道这是什么,所以我找不到任何有关如何完成的文档。如何编写全屏Linux控制台应用程序/脚本?

所以,我的问题有三个方面:

  1. 我可以使用哪些关键字来找到这个文件?
  2. 如果您非常喜欢,链接到这些文档将有所帮助。
  3. 最后,我可以用Ruby,甚至bash这样的脚本语言来完成这项工作吗?我对C没有问题,但我工作的环境更适合解释语言。
+0

你正在寻找该库是 '诅咒'。我确定有对Perl的绑定,不知道其他脚本语言。 – antlersoft

回答

2

您描述的功能是alternate screen buffer。我认为[N] Curses会默认启用此功能。 Ruby,Python和其他脚本语言确实存在curses绑定。

+0

+1为正确的关键字。 –

+0

为了完整性:此功能通常很烦人,并且有多种方法可以阻止使用备用屏幕缓冲区的程序:http://www.shallowsky.com/linux/noaltscreen.html – larsks

2

你可以在bash甚至ncurses的访问,通过使用tput的程序。整个ncurses库(如之前的curses)通过向终端发送转义序列来工作。 xterm程序模拟一个vt100终端(也是一个Tektronic终端),并且有各种字符组合可以移动光标,清除屏幕,绘制各种字符等等。这些通常以转义字符开头,因此名称:escape序列。您有时也会在\ e中看到人们的PS1 shell变量中的这些转义序列以提供转义字符;通常用于给提示着色或设置窗口标题。

tput引用terminfo数据库来确定转义序列执行您要求的功能。

请参阅手册页,请键入:

man 5 terminfo 

更多细节

相关问题