转自:https://my.oschina.net/jcseg/blog/178047
开发的一个应用程序选择了终端界面, 为了使软件稍微好看些, 研究下Linux终端的彩色打印, 并且基于这个彩色打印实现了几种进度条, 在此总结下: (更多的是觉得这个东西挺好玩的... )
一. Linux终端色彩打印:
1. 属性介绍:
(1). 来自网络的ANSI属性控制码:
033[0m 关闭所有属性
033[1m 设置高亮度
033[4m 下划线
033[5m 闪烁
033[7m 反显
033[8m 消隐
033[30m -- 33[37m 设置前景色
033[40m -- 33[47m 设置背景色
033[nA 光标上移n行
033[nB 光标下移n行
033[nC 光标右移n列
033[nD 光标左移n列
033[y;H 设置光标位置
033[2J 清屏
033[K 清除从光标到行尾的内容
033[s 保存光标位置
033[u 恢复光标位置
033[?25l 隐藏光标
033[?25h 显示光标
(2). 文字背景色彩数字: (颜色范围:40 - 49)
40: 黑色
41: 深红色
42: 绿色
43: 黄色
44: 蓝色
45: 紫色
46: 深绿色
47: 白色
(3). 文字前景色数字: (颜色范围: 30 - 39)
30: 黑色
31: 红色
32: 绿色
33: 黄色
34: 蓝色
35: 紫色
36: 深绿色
37: 白色
2. 使用例子:
Linux终端会解析这些控制码, 并且依据控制码来设置终端的绘制属性, 所以, 只要输出流中包含ANSI控制码就可以工作, 这里使用linux的echo命令来演示: (你可以使用任何你熟悉的语言来代替...)
(1). 字体红色输出:
查看上面的ANSI控制码可以知道: