Linux中shell的输出效果显示方法

释放双眼,带上耳机,听听看~!

我们经常可以看到在一些shell脚本的输出结果中,有很多的颜色显示,可以非常清晰的找到自己想要的结果,这些都是通过在文本终端使用ANSI控制码实现的。

ANSI/3.64控制码标准

ANSI控制码均以Esc[作为控制码的开始标志,shell中以m表示控制码的结束,其中,Esc 的ansi码为 27-十进制,33-八进制,在shell中,可以使用33[xxm 表示。

Echo输出解析转义字符

Echo the STRING(s) to standard output.
​
-n     do not output the trailing newline
​
-e     enable interpretation of backslash escapes
​
-E     disable interpretation of backslash escapes (default)
​

输出时需要使用-e参数来控制ANSI控制码的解析。

ANSI控制码表

字体和背景颜色代码

字体色  背景色  对应色彩
30      40      黑色
31      41      红色
32      42      绿色
33      43      黄色
34      44      蓝色
35      45      紫红色
36      46      青蓝色
37      47      白色

其它动作代码

代码          对应动作
0           重新设置属性到缺省设置 
1           设置粗体 
2           设置一半亮度(模拟彩色显示器的颜色) 
4           设置下划线(模拟彩色显示器的颜色) 
5           设置闪烁 
7           设置反向图象
8           消隐 
22          设置一般密度 
24          关闭下划线 
25          关闭闪烁 
27          关闭反向图象

格式说明

对于ANSI控制码可以同时使用多个动作代码和一种字体颜色以及一种背景颜色,顺序随意,相互之间使用;隔开。如:33[31;46;1;4;5m

在shell中的使用,如下所示,将所要展示的内容跟在ANSI码之后即可,一般我们会在内容之后,将输出格式重置为默认echo -e "33[31;46;1;4;5m这里是要改变颜色的内容 ,可以包含空格33[0m"

实例演示

  1. 显示红色字体
echo -e "33[31m这里显示红色33[0m"
  1. 显示红字蓝底并加粗
echo -e "33[31;44;1m这里显示蓝底加粗的红色字体33[0m"

另外,在bash中可以直接使用e来代替33加快输入速度。更多内容请自行尝试。

给TA打赏
共{{data.count}}人
人已打赏
主机推荐

ShockHosting:洛杉矶 KVM 1G 20G硬盘 1TB流量 月付3.74美元

2018-9-18 14:28:20

Linux

Linux常用命令之sed

2018-8-22 16:06:38

免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站除大叔原创外的资源均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请通过私信与我们联系处理。敬请谅解!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索