2018-12-29 16:56:31 +08:00
|
|
|
|
# ANSI 终端控制
|
|
|
|
|
|
|
|
|
|
在 ANSI 终端下 printf 等输出可以通过特殊代码对终端进行控制,包括改变显示颜色,如:
|
|
|
|
|
|
|
|
|
|
printgf(“\033[01;40;32m HELLO \033[0m”);
|
|
|
|
|
|
|
|
|
|
这里 33[ 是转义子列,表示后面接的控制代码;01 是高亮度,不写是低亮度;40 是背景色;32m 是前景色。ANSI 终端通过不同码值区分控制功能,ANSI控制码如下:
|
|
|
|
|
|
|
|
|
|
| 含义 | 属性 |
|
|
|
|
|
|------------|---------|
|
|
|
|
|
| 关闭所有属性 | \033[0m |
|
|
|
|
|
| 设置高亮度 | \033[1m |
|
|
|
|
|
| 下划线 | \033[4m |
|
|
|
|
|
| 闪烁 | \033[5m |
|
|
|
|
|
| 反显 | \033[7m |
|
|
|
|
|
| 消隐 | \033[8m |
|
|
|
|
|
| 设置前景色 | 30~37 |
|
|
|
|
|
| 设置背景色 | 40~47 |
|
|
|
|
|
| 光标上移 n 行 | \033[nA |
|
|
|
|
|
| 光标下移 n 行 | \033[nB |
|
|
|
|
|
| 光标右移 n 列 | \033[nC |
|
|
|
|
|
| 光标左移 n 列 | \033[nD |
|
|
|
|
|
| 设置光标位置 | \033[y;xH |
|
|
|
|
|
| 清屏 | \033[2J |
|
|
|
|
|
| 清除从光标到行尾的内容 | \033[K |
|
|
|
|
|
| 保存光标位置 | \033[s |
|
|
|
|
|
| 恢复光标位置 | \033[u |
|
|
|
|
|
| 隐藏光标 | \033[?25l |
|
|
|
|
|
| 显示光标 | \033[?25h |
|
|
|
|
|
|
|
|
|
|
颜色码及含义如下:
|
|
|
|
|
|
|
|
|
|
| 颜色 | 背景色代码 | 前景色代码 |
|
|
|
|
|
|--------|----------|----------|
|
|
|
|
|
| Black | 40 | 30 |
|
|
|
|
|
| Red | 41 | 31 |
|
|
|
|
|
| Green | 42 | 32 |
|
|
|
|
|
| Yellow | 43 | 33 |
|
|
|
|
|
| Blue | 44 | 34 |
|
|
|
|
|
| Purple | 45 | 35 |
|
|
|
|
|
| Cyan | 46 | 36 |
|
|
|
|
|
| White | 47 | 37 |
|
|
|
|
|
|
|
|
|
|
其他示例如下:
|
|
|
|
|
|
|
|
|
|
printf("\033[0;32mPASSED\033[0;0m\n");
|
2019-07-04 14:19:23 +08:00
|
|
|
|
printf("\033[0;31mFAILED\033[0;0m\n");
|