jenkins 中需安装 ansicolor 插件并用 ansicolor('xterm') 包裹 sh 步骤,配合 ansi 转义序列(如 \033[32m)实现日志着色,提升可读性;注意重置样式 \033[0m 成对使用,并避免 set -x 干扰渲染。

在 Jenkins 流水线中使用 Shell 脚本时,默认输出是纯文本,缺乏颜色区分,不利于快速识别成功、警告或错误信息。通过 Jenkins AnsiColor 插件,可以原生支持 ANSI 转义序列(如 \033[32m),让日志带颜色显示,提升可读性与排错效率。
安装并启用 AnsiColor 插件
进入 Jenkins 管理界面 → “插件管理” → “可用插件”,搜索 AnsiColor,勾选安装(推荐安装最新稳定版)。安装完成后无需重启,但需确保插件已启用。可在“系统配置” → “全局工具配置”下方确认插件状态。
在流水线中启用 AnsiColor 支持
流水线脚本中需用 ansiColor 步骤包裹执行 Shell 的阶段,否则颜色代码会被忽略。基本写法如下:
- 使用
ansiColor('xterm')或ansiColor('vga')包裹sh步骤(xterm兼容性更广,推荐) - 确保 Shell 命令本身输出 ANSI 序列(例如
echo -e "\033[32mSUCCESS\033[0m") - 避免在
sh中使用set -x(即set -o xtrace),它会打印带颜色的命令前缀,可能干扰渲染;如需调试,改用echo显式输出
Shell 中常用 ANSI 颜色写法示例
Linux Shell 支持标准 ANSI 转义码,Jenkins-AnsiColor 可识别。常用组合:
- \033[32m 绿色(成功)\033[0m
- \033[33m 黄色(警告)\033[0m
- \033[31m 红色(错误)\033[0m
- \033[34m 蓝色(信息)\033[0m
- 加粗:添加
1;,如\033[1;31m 加粗红色 \033[0m
注意:\033[0m 是重置样式,务必成对使用,否则后续所有日志都带颜色。
配合工具自动着色(可选增强)
若不想手动拼接 ANSI 码,可借助支持颜色输出的命令行工具,并确保它们在非 TTY 环境下仍生效:
- 对
grep:使用grep --color=always(Jenkins 默认不分配 TTY,=always强制着色) - 对
ls:使用ls --color=always - 对
diff:用diff --color=always或搭配colordiff - Python 脚本中可用
colorama或直接 print 带 \033 的字符串
这些输出在 ansiColor 步骤内即可正确渲染。











