当前位置:首页 > > 处芯积律

在执行脚本的过程中,有时我们需要时刻关注脚本的打印信息,从而判断脚本执行是否正常,当脚本打印信息较多时,我们需要将关键打印更明显的展现出来,此时可以使用echo加上ANSI 转义序列达到此目的。在支持 ANSI 转义序列的终端,可以对打印信息实现如下效果:文字闪烁、指定文字颜色、文字加粗、高亮显示文字。

echo -e "running for icxiaoge project... "
echo -e "\033[5;31m running for icxiaoge project... \033[0m"

如图所示,这条语句echo -e "\033[5;31m running for icxiaoge project... \033[0m" 的作用是在支持 ANSI 转义序列的终端中输出一段带有特殊格式的文本,具体是让文字显示为 红色、闪烁 的效果,内容为 running for icxiaoge project。

  1. echo -e

    • echo 是输出文本的命令;

    • -e 选项表示“启用转义字符解析”,让后续的 \033[... 这类特殊序列生效(否则会被当作普通文本输出)。

  2. \033[5;31m是 ANSI 转义序列(控制终端文本样式的标准),用于设置文本格式:

    • \033[ 是转义序列的起始标志(\033 对应 ASCII 中的“ESC 键”,表示开始控制命令);

    • 5 表示“闪烁模式”(让文字闪烁);

    • 31 表示“文本颜色为红色”(ANSI 颜色码:30=黑、31=红、32=绿等);

    • m 是转义序列的结束标志,之后的文本会应用前面的样式。

  3. running for icxiaoge project...这是实际要输出的内容,会以“红色、闪烁”的样式显示,通常用于强调某个正在执行的任务(这里是提示“正在为icxiaoge 项目运行...”)。

  4. \033[0m 这是另一个 ANSI 转义序列,0 表示“重置所有样式”,即后续的文本会恢复为终端默认的样式(取消闪烁和红色)。如果没有这个重置,后续终端输出的所有文字都会保持红色闪烁,这通常是不希望的。

在 ANSI 转义序列中,存在多种文本显示模式

常用显示模式参数

如下是较为常用的几个显示模式

参数
含义(效果)
适用场景
0
重置重置所有样式(默认状态)
结束样式设置,避免影响后续输出
1
粗体(高亮)
强调重要内容(如标题、关键提示)
2
弱化(淡显)
次要信息、辅助说明
3
斜体(部分终端支持)
注释、补充说明
4
下划线
链接、重点关键词
5
闪烁(慢速闪烁)
警告、紧急提示(部分终端禁用)
7
反显(前景色与背景色互换)
选中状态、高亮突出显示
8
隐藏(不可见,但仍可复制)
密码输入时的掩码(部分场景)
9
删除线
废弃内容、已过时信息


如图所示:

  • 参数7 为反显模式,前景色与背景色互换了,突出效果明显

  • 参数5 为闪烁效果,则在部分终端中不支持

  • 参数9 为删除线,表示已经过时的信息


echo -e "\033[1;31m running for icxiaoge project... \033[0m"
echo -e "\033[2;31m running for icxiaoge project... \033[0m"
echo -e "\033[3;31m running for icxiaoge project... \033[0m"
echo -e "\033[7;31m running for icxiaoge project... \033[0m"
echo -e "\033[9;31m running for icxiaoge project... \033[0m"

ANSI 颜色码

ANSI 颜色码是通过 ANSI 转义序列控制终端文本颜色的标准编码,主要分为 基础 8/16 色、256 色 和 真彩色(RGB) 三大类。如下章节将简单描述 基础 8/16 色。

基础 8/16 色 编码表

通过控制码设置 前景色(文本颜色) 和 背景色(文本底色)就能达到很好的显示效果,更复杂的设置可以不需要。而且基础的设置在不同的终端上更容易适配。

颜色
前景色码(文本色)
背景色码(底色)
黑色
30
40
红色
31
41
绿色
32
42
黄色
33
43
蓝色
34
44
洋红色(品红)
35
45
青色
36
46
白色
37
47
# 红色文本(前景色 31)echo -e "\033[31m 这是红色文本 \033[0m"
# 绿色背景(背景色 42)+ 黑色文本(前景色 30)echo -e "\033[42;30m 绿底黑字 \033[0m"
# 高亮蓝色文本(94)+ 下划线(4)echo -e "\033[94;4m 高亮蓝色下划线文本 \033[0m"
# 重置样式(0)必须加,否则后续文本会继承颜色
  echo -e "\033[41;30m print message  \033[0m"
 echo -e "\033[41;33m print message  \033[0m"
 echo -e "\033[41;43m print message  \033[0m"
 echo -e "\033[34;43m print message  \033[0m"
 echo -e "\033[35;43m print message  \033[0m"
 echo -e "\033[35;47m print message  \033[0m"
 echo -e "\033[30;47m print message  \033[0m"


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭