linux终端中输出彩⾊字体(CSHELL)
这⼏天在⽤libvlc的时候看到它在terminal⾥⾯输出彩⾊字体觉得挺好玩的,以为是⽤ncurses实现的,后来⼀查原来⽤ANSI C的转义字符就可以实现,不过好现只在linux下有效吧, windows神马的貌似不⾏,把项⽬终端凌乱的输出信息整理了⼀下,关键字符也都⽤彩⾊显⽰,看上去舒服多了,写⼀下⽤法以防⽌以后忘了再去查。
先把控制码列出来(从⽹上搜来的):
\033[0m 关闭所有属性
\033[1m 设置⾼亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐linux终端下载软件
\033[30m----\33[37m 设置前景⾊
\033[40m----\33[47m 设置背景⾊
\033[nA 光标上移n⾏
\033[nB 光标下移n⾏
\033[nC 光标右移n⾏
\033[nD 光标左移n⾏
\033[y;xH 设置光标位置
\033[2J 清屏
\033[K 清除从光标到⾏尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显⽰光标
背景⾊:
40:⿊ 41:深红 42:绿 43:黄⾊ 44:蓝⾊ 45:紫⾊ 46:深绿 47:⽩⾊
前景⾊:
30:⿊ 31:红 32:绿 33:黄 34:蓝⾊ 35:紫⾊ 36:深绿 37:⽩⾊
控制字符是打开某种样式,输出完成时需要再关闭样式才能使terminal恢复到原来状态,简单例⼦:
printf("\e[32m%s\e[0m\n", "hello world");
\033和\e是⼀回事,使⽤\e会更简单⼀些,输出为绿⾊字体,如下图:
\e[32m为打开绿⾊前景⾊样式,\e[0m为关闭所有样式,如果未关闭,则所有输出字体均为绿⾊前景⾊,如下代码:
printf("\e[32m%s\n", "hello world");
输出效果如下:
绿⾊⾼亮代码如下:
printf("\e[32m\e[1m%s\e[0m\n", "hello world");
输出效果如下:
另外光标移动的控制码在输出类似于下载进度的信息时⽤得到。
在shell中也可以直接⽤echo输出,需要加-e选项打开转义字符解释,如输出⾼亮的绿⾊字体为:
echo -e "\e[32m\e[1mhello world\e[0m"
其它的我也没怎么看,觉得也就改变字体颜⾊和移动光标位置能⽤得到,觉得挺好玩的就写下来以后忘了查⼀查。
原创⽂章,转载请注明:转载⾃
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论