Shell格式化语言

时间:2011-08-23 15:23:33

标签: linux shell

在Linux上,控制台应用程序可以格式化其输出。他们可以设置字体颜色,设置背景颜色,并可以在控制台上放置每个标志。例如,使用它可以在控制台中实现俄罗斯方块游戏。

我想知道如何做到这一点。我认为他们使用输出标记语言或其他东西。谁能告诉我在哪里可以了解更多相关信息?

非常感谢!

3 个答案:

答案 0 :(得分:2)

大多数涉及大量动作或颜色的控制台应用程序都是使用ncurses库构建的。一些非常常见的示例是irssi(IRC客户端),mc(Midnight Commander,控制台文件浏览器),mutt(POP3 / IMAP邮件客户端)

您似乎已经知道用于修改控制台颜色的转义码。一个很好的控制台颜色转义序列列表(对于Bash)can be found here.

答案 1 :(得分:2)

你显然需要掌握那些每个流行的Unix视频游戏rogue, srogue, larn, hack, and/or nethack。他们有long and venerable history

值得注意的是,这些都使用标准 curses - 或者最近使用 ncurses - 库。这是一个screen shot

由于它们没有操纵杆,因此动作是使用 vi 命令。他们是最好的磨练你发明的 vi 动作技巧的方式:不再为你打造双指拳!你不再考虑动作;它只是成为你手指肌肉记忆的一部分。你真的必须玩它们来感受awesome “Zen” state you can get into playing them

  

经过充分的练习,感觉好像你的手指自己还记得如何演奏这首曲子。你甚至不看他们。他们有工作要做,一旦他们学会了,就可以完全免除直接监督。清除外部世界的思想,使程序成为主导的现实,是音乐家称之为“手指记忆”的关键。 (你可能听说过运动员或舞者将它称为肌肉记忆,但当我们谈论使用计算机时,手指真的很重要。)

     

[...]当然,这不是真正发生的事情;它似乎只是。你的手指真的不记得了。但是控制它们的大脑的一部分确实存在,即使“你”没有意识到它。发生的事情是,你已经成功地吸收了不再需要有意识方向所需的动作。额头后面的小灯塔守护者可以担心其他事情,保证你的手指会完成你训练他们做的工作。你的眼睛在屏幕上,头脑中的程序,你的脑袋在程序中。你的手指成为你意志的未被注意的延伸。 [...]

     

[...]毫无疑问,对于某些任务,键盘显然是最佳效率的输入设备。 考虑 rogue 的游戏或其最新版本之一。除了键盘之外,你不会想要使用任何东西。命令集太丰富了。尝试使用鼠标和菜单界面而不是键盘来玩游戏会使您减慢至少两个数量级。

rogue 系列视频游戏也值得注意显示如何为常规终端(如vt100或 xterm)编写视频游戏,我相信你正在寻找的。我现在可能会使用比C更现代的语言,但所有相同的原则仍然适用。 Perl和Python都具有与这些标准库的良好接口。

答案 2 :(得分:1)

这不是一系列escape sequences的标记语言,它会触发终端查看器以某种方式格式化。

您可以在输出之前发送ANSI转义序列,以指示以下输出应该是某种颜色,重量,背景。您还可以发送将光标跳转到特定位置的序列以继续写入输出。

如果你要做一个完整的应用程序,你应该考虑使用一些库,如ncurses,使这些可管理。