Jenkins ansiColor插件报错:意外字符'\'问题解决咨询
问题解决方法
错误原因
- Jenkins流水线的
echo步骤并非Shell的echo命令,不支持-e参数,该参数会被当作普通文本处理,还会引发语法问题。 - Groovy里的单引号字符串属于原始字符串,不会解析转义字符,
\必须转义为\\才能被正确识别,否则会触发编译错误。
修复后的代码
可任选以下两种方式之一:
方式1:使用双引号字符串(Groovy会自动解析转义字符)
ansiColor('xterm') { echo "\033[31mERROR:\033[0m xxxx" }
方式2:在单引号字符串中转义反斜杠
ansiColor('xterm') { echo '\\033[31mERROR:\\033[0m xxxx' }
额外优化
若觉得ANSI转义码不够直观,也可以结合ansiColor插件与groovy.util.AntBuilder的echo任务使用颜色别名,示例如下:
ansiColor('xterm') { def ant = new groovy.util.AntBuilder() ant.echo(style: 'red', message: 'ERROR: xxxx') }
内容的提问来源于stack exchange,提问作者Solaris_9
相关产品推荐
相关产品推荐

