设为首页 收藏本站
查看: 1091|回复: 0

linux终端中输出彩色字体(C/SHELL)

[复制链接]

尚未签到

发表于 2015-4-29 09:37:34 | 显示全部楼层 |阅读模式
这几天在用libvlc的时候看到它在terminal里面输出彩色字体觉得挺好玩的,以为是用ncurses实现的,后来一查原来用ANSI C的转义字符就可以实现,不过好现只在linux下有效吧, windows神马的貌似不行,把项目终端凌乱的输出信息整理了一下,关键字符也都用彩色显示,看上去舒服多了,写一下用法以防止以后忘了再去查。
  先把控制码列出来(从网上搜来的):

\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;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会更简单一些,输出为绿色字体,如下图:
DSC0000.png
  \e[32m为打开绿色前景色样式,\e[0m为关闭所有样式,如果未关闭,则所有输出字体均为绿色前景色,如下代码:





printf("\e[32m%s\n", "hello world");
  输出效果如下:
DSC0001.png
  绿色高亮代码如下:





printf("\e[32m\e[1m%s\e[0m\n", "hello world");
  输出效果如下:
DSC0002.png
  另外光标移动的控制码在输出类似于下载进度的信息时用得到。
  在shell中也可以直接用echo输出,需要加-e选项打开转义字符解释,如输出高亮的绿色字体为:





echo -e "\e[32m\e[1mhello world\e[0m"
  其它的我也没怎么看,觉得也就改变字体颜色和移动光标位置能用得到,觉得挺好玩的就写下来以后忘了查一查。



  原创文章,转载请注明: 转载自basic coder
  本文链接地址: http://basiccoder.com/output-colorful-words-in-terminal.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61799-1-1.html 上篇帖子: 使用Bash编写Linux Shell脚本-6.表达式 下篇帖子: linux shell cat(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表