【问题标题】:How to write full-screen Linux console app/script?如何编写全屏 Linux 控制台应用程序/脚本?
【发布时间】:2021-05-18 23:16:54
【问题描述】:

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

所以,我的问题有三个:

  1. 我可以使用哪些关键字来查找相关文档?
  2. 如果您愿意,指向此类文档的链接会很有帮助。
  3. 最后,我可以使用 Ruby 甚至 bash 之类的脚本语言来完成这项工作吗?我对 C 没有问题,但我工作的环境更适合解释型语言。

【问题讨论】:

  • 您要查找的库是“curses”。我确定有绑定到 Perl,不确定其他脚本语言。

标签: linux shell command-line-interface


【解决方案1】:

您描述的功能是alternate screen buffer。我认为 [N]Curses 将默认启用此功能。 Ruby、Python 和其他脚本语言当然有 curses 绑定。

【讨论】:

【解决方案2】:

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

https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

【讨论】:

  • 接受到 tldp 的链接。很棒的网站!
【解决方案3】:

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

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

查看手册页,输入:

man 5 terminfo

更多详情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 2012-06-15
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多