首页 > 解决方案 > 来自 bash 脚本的 Jenkins 控制台上没有彩色输出

问题描述

我有一个 Jenkins 脚本化管道,它正在调用 salt 并运行 bash 脚本。该脚本有一些颜色代码,如下所述。我启用了 ANSI 颜色。但是,颜色没有得到解决。相反,它们按原样打印,但以蓝色作为 ANSI 颜色,我已将“默认前景”设置为蓝色。我也尝试过使用 Jenkins 默认颜色,但没有运气。

?[31;43m***** HOSTNAME INFORMATION *****?[0m

?[31;43m***** FILE SYSTEM DISK SPACE USAGE *****?[0m

?[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****?[0m

标签: bashscriptingjenkins-pipeline

解决方案


你的转义序列是错误的。此外,-e标志在 MacO 上不起作用(如果您在 MacO 中工作)。

#!/bin/bash

content='\e[31;43m***** HOSTNAME INFORMATION *****\e[0m

\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m

\e[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****\e[0m\n
'

echo -e "$content" ## Does not work on MacOs
printf "$content" ## But you can use printf and add a \n at the end of string.

推荐阅读