在命令行界面(CLI)中输出带颜色的日志不仅能提升可读性,还能帮助开发人员在调试时迅速区分不同类型的日志信息。
通过使用 ANSI 转义序列,我们可以很方便地控制输出文本的颜色、样式和其他显示效果,如加粗、下划线、反显等。
本文将详细介绍如何使用这些序列输出带颜色的日志。
什么是 ANSI 转义序列?
ANSI 转义序列是一种用于控制终端文本格式的字符序列。
它通常以 \033[ 或 \e[ 开头,后接不同的控制代码,最后以 m 结尾。
例如,\033[32m 表示设置文本颜色为绿色,\033[0m 用来重置样式。
利用 ANSI 转义序列,开发者可以灵活地在命令行中输出不同颜色和效果的文本。
常见的 ANSI 转义序列控制
\033[0m:关闭所有属性,恢复为默认设置\033[1m:设置高亮度(加深显示)\033[4m:设置下划线\033[5m:设置闪烁\033[7m:反显(替换背景色和前景色)\033[8m:消隐(隐藏文本)\033[30m到\033[37m:设置前景色(字体颜色)\033[40m到\033[47m:设置背景色\033[nA:光标上移 n 行\033[nB:光标下移 n 行\033[nC:光标右移 n 行\033[nD:光标左移 n 行\033[y;xH:设置光标位置为 y 行 x 列\033[2J:清屏\033[K:清除从光标到行尾的内容\033[s:保存光标位置\033[u:恢复光标位置\033[?25l:隐藏光标\033[?25h:显示光标
常见的颜色和效果
字体颜色(前景色)
- 30: 黑色
- 31: 红色
- 32: 绿色
- 33: 黄色
- 34: 蓝色
- 35: 紫色
- 36: 深绿色
- 37: 白色
背景颜色
- 40: 黑色背景
- 41: 红色背景
- 42: 绿色背景
- 43: 黄色背景
- 44: 蓝色背景
- 45: 紫色背景
- 46: 深绿色背景
- 47: 白色背景
显示效果
- 0: 默认(无效果)
- 1: 高亮(加深显示)
- 2: 低亮(减弱显示)
- 4: 下划线
- 5: 闪烁
- 7: 反显(替换前景色和背景色)
- 8: 消隐(隐藏文本)
示例代码
- 简单的颜色输出
最简单的颜色控制是设置文本的前景色。例如,以下代码将输出绿色文本:
echo "\033[32m绿色\033[0m"
033[32m 设置文本为绿色,033[0m 用于重置所有属性,使后续输出恢复默认样式。
- 加粗和下划线
我们可以结合多种样式来增强文本的可读性。例如,下面的代码将输出一个带下划线的红色文本:
echo "\033[4;31m下划线红色\033[0m"
这里,4 表示下划线,31 表示红色。
- 发出声音提示
除了颜色和样式,ANSI 转义序列还可以控制终端的其他行为,比如发出声音。
这行命令会在终端发出一声铃声,同时输出一段普通文本:
echo "\007发出'咚~'一声\033[0m"
请注意,在某些终端环境下,铃声可能不会响起,尤其是在没有扬声器的设备上。
- 设置背景色和前景色
你还可以同时设置文本的前景色和背景色。例如,以下代码将输出一个白色背景和红色前景的文本:
echo "\033[47;31m白底红字\033[0m"
47 是背景色(白色),31 是前景色(红色)。
- 结合多个效果
通过组合多个效果,你可以创建更具视觉冲击力的输出。比如,以下代码将输出一个蓝色加粗下划线的文本:
echo "\033[1;4;34m蓝色加粗下划线\033[0m"
在这个示例中,1 表示加粗,4 表示下划线,34 表示蓝色。
- 光标控制和清屏
ANSI 转义序列还允许控制光标的位置和终端屏幕的清理。例如:
echo "\033[2J" # 清屏
echo "\033[10;5H光标移动到第10行第5列\033[0m"
- 隐藏和显示光标
你还可以隐藏和显示光标:
echo "\033[?25l" # 隐藏光标
echo "\033[?25h" # 显示光标

通过使用 ANSI 转义序列,我们可以轻松地为命令行中的输出添加颜色和样式。
这不仅能让调试日志变得更加易读,还能增强命令行工具的用户体验。
你可以根据需求结合不同的颜色、效果和光标控制,创建自定义的命令行输出,通过这些技术,命令行的输出变得更加生动和富有表现力,有助于开发人员快速识别关键信息。
任何个人或团体,未经允许禁止转载本文:

发表评论
沙发空缺中,还不快抢~