Linux中利用echo命令实现字体样式的改变
相信有很多小伙伴或多或少都在某个地方见到过 echo 这个东东,在高级语言PHP中,存在着echo函数、在Redis中也有着echo的命令,而在我们所熟知的linux中当然也少不了echo的身影,由此可见echo的用途是很广的,并且是很有用处的,那么今天我将带大家了解一下如何使用echo命令在linux系统中去实现字体的个性化/样式化:
echo实现字体个性化:
相关命令格式: echo -e "\033[n1;n2;n3;…Textm\033[n1;n2;n3;…m"
上述就是设置字体样式,实现个性化的命令格式,接下来我将给大家讲解一下具体原理以及如何使用它。
这条命令格式中 -e 是指 enable interpretation of backslash escapes,它的本意是指 **反斜杠转义的解释,简单来理解,就是指 **字符的解释使之达到调整样式的目的!,而 -e 后面的 “\033[n1;n2;n3;…Textm\033[n1;n2;n3;…m” 就是去 设置字体相关的样式,详解如下:
\033[ 是 引导非常规字符序列,你可以理解成解释器的开头(开启字符解释),而 m 就与之相反,它是指 结束非常规字符序列,即解释器的尾部(结束字符解释,与\033[首尾呼应),而在 \033[ 和 m 之间的那些n1、n2、n3等等就是指 你所想要设置的样式编码,例如,在命令行输入这样一条命令 echo -e “\033[1;31m 一剑霜寒十四州\033[0m” ,结果如下:
再或者 echo -e “\033[1;34m 一剑霜寒十四州\033[0m”,效果如下:
以上两个例子都成功地修改了输出的字符串的样式,前一个为 粗体加红,后一个为 粗体加蓝,这是因为我在命令中所设置的编码1对应的就是粗体的效果,而编码31对应的是字体标红的效果,编码34对应的是字体标蓝的效果,也就是上述所谓的n1,n2,n3…,我们设置不同的编码值就对应不同的样式效果,以下是我整理的编码值表,供大家参考:
编码 | 颜色/动作 |
---|---|
0 | 重新设置属性到缺省设置 |
1 | 设置粗体 |
2 | 设置一半亮度(模拟彩色显示器的颜色) |
4 | 设置下划线(模拟彩色显示器的颜色) |
5 | 设置闪烁 |
7 | 设置反向图象 |
22 | 设置一般密度 |
24 | 关闭下划线 |
25 | 关闭闪烁 |
27 | 关闭反向图象 |
30 | 设置黑色前景 |
31 | 设置红色前景 |
32 | 设置绿色前景 |
33 | 设置棕色前景 |
34 | 设置蓝色前景 |
35 | 设置紫色前景 |
36 | 设置青色前景 |
37 | 设置白色前景 |
38 | 在缺省的前景颜色上设置下划线 |
39 | 在缺省的前景颜色上关闭下划线 |
40 | 设置黑色背景 |
41 | 设置红色背景 |
42 | 设置绿色背景 |
看吧,其实个性化输出文本就是一个很简单的命令运用而已,我相信看完整篇文章的小伙伴们也应该学会了如何在终端使用echo去个性化设置文本的样式了,那么,最后,我们不妨用一个简单的需求来小小地考验一下一下自己,看看自己到底是否真正的学会了这个命令,下面是这个简单的 需求:
请输出一段文本,内容为“一剑在手,天下无双!”,要求:将文本设为粗体,并且对其设置闪烁效果,再将文本颜色调整为绿色(此非原谅色,此乃健康色,老司机们,切莫想歪了,奸笑,嘿嘿嘿~),最后给文本设个下划线样式。
下面是我给出的答案:echo -e “\033[1;5;32;4m一剑在手,天下无双!\033[0m”,大家可以对比看看,我相信应该都是一致的!那么这篇文章就到此结束了,如果小伙伴们还有兴趣,可以试着将 echo -e "\033[1;5;32;4m一剑在手,天下无双!\033[0m"里面的最后一段 \033[0m 去掉试试,改成echo -e “\033[1;5;32;4m一剑在手,天下无双!”,然后发现结果有什么不同点,再自己仔细思考思考,结合上面所讲的开启解释以及结束解释的内容,你将会拨开迷雾见真理,哈哈哈哈哈!大家江湖再见!