如何编写全屏Linux控制台应用程序/脚本?

时间:2013-01-08 18:06:45

标签: linux shell command-line-interface

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

所以,我的问题有三个:

  1. 我可以使用哪些关键字查找相关文档?
  2. 如果您如此倾向,那么链接到这些文档会有所帮助。
  3. 最后,我可以用像Ruby这样的脚本语言来实现这一点,甚至是bash吗?我对C没有任何问题,但我工作的环境更适合解释语言。

3 个答案:

答案 0 :(得分:4)

正如一些评论所说,你正在寻找ncurses。 Linux文档项目有一个非常好的HOWTO用于C的ncurses我自己开始使用它

http://www.tldp.org/HOWTO/text/NCURSES-Programming-HOWTO

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

tput是指terminfo数据库,用于确定转义序列执行您要求它执行的功能的内容。

请参阅手册页,输入:

man 5 terminfo

了解更多详情