前言
大家都知道使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。
一、shell下的实现方法
先来讲在shell下,如何实现。用echo命令就可以实现,参看以下例子:
echo -e "33[32mHello, world!"
当你在终端里敲下这条命令后,是不是发现系统用绿色输出了"Hello,world!",不止如此,连之后的命令提示符都变成了绿色?不要着急,听我继续说。echo
命令-e
选项的作用是激活终端对反斜线转义符(即)的解释。引号内33用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。
设置可以单独使用,例如:
echo -e "33[0m"
这行命令的作用是恢复属性为默认值,也就是说0m设置项用于恢复默认值。现在你的终端是不是又一切正常了?
理解了这些,剩下的就简单了。用这种命令,除了设置文本前景色,还可以设置很多属性。
下边列出其他的设置项:
33[0m 关闭所有属性 33[1m 设置高亮度 33[4m 下划线 33[5m 闪烁 33[7m 反显 33[8m 消隐 33[30m 至 33[37m 设置前景色 33[40m 至 33[47m 设置背景色 33[nA 光标上移n行 33[nB 光标下移n行 33[nC 光标右移n行 33[nD 光标左移n行 33[y;xH设置光标位置 33[2J 清屏 33[K 清除从光标到行尾的内容 33[s 保存光标位置 33[u 恢复光标位置 33["color: #3366ff">各数字所代表的颜色如下:字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
另外,同类的多种设置项可以组合在一起,中间用分号(;)隔开。
如下:
echo -e "33[20;1H33[1;4;32mHello,world33[0m"这行命令首先33[20;1H将光标移动到终端第20行第1列,之后的33[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然后输出Hello,world;最后33[0m将终端属性恢复为默认值,这样就不会看到连命令完成后的命令提示符也变了样儿了。
通过以上各种命令的组合就可以实现对终端输出地复杂控制。
二、如何在C编程中实现?
理解了以上在Shell中的实现方法,关于在C中如何实现就很简单了。可以说只需要用
printf
函数代替上边的echo -
e就OK了参见下例:int color = 32; printf("33[20;1H33[1;4;%dmHello, world.33[0m", color);这个例子类似上边shell中最后那个例子,只是这里颜色值通过变量color来指定(当然,也可以直接指定)。
三、联想
看到这里你可能会想,是不是在其他编程语言里也可以用类似的方法实现对终端输出的控制呢?答案是肯定的!比如在python中,可以如下输出:
color=32 print “33[20;1H33[1;4;%dHello, world.33[0m"%color这个例子的效果跟上边C的例子是相同的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]