如何使用sed在Jenkins构建描述中实现内容换行展示?
问题原因
Jenkins构建描述默认解析HTML内容,你当前将逗号替换为Shell换行符\n,\n不会被HTML识别为换行标记,因此无法实现预期的换行效果。
解决方案
直接将逗号替换为HTML换行标签<br>即可,多个变量之间也通过<br>分隔实现换行。
修改后代码示例
# 替换逗号为HTML换行标签,同时提前转义特殊字符避免破坏HTML结构 message2=$(echo "$message1" | sed 's/&/\&/g; s/</\</g; s/>/\>/g; s/,/<br>/g') # message3的处理逻辑同理 message3=$(echo "$message3" | sed 's/&/\&/g; s/</\</g; s/>/\>/g') # 调用Jenkins CLI写入描述,多变量之间用<br>分隔 java -jar jenkins-cli.jar -s http://JENKINS_INSTANCE:9090/ -auth user:token -webSocket set-build-description "$job" "$build" "<b style='color:green !important;' >$message2<br>$message3<br> Message 2 supposed to be here<br>"
补充说明
- 变量引用时保留双引号包裹,避免Shell自动拆分包含空格、特殊字符的内容导致格式错乱。
- 提前做HTML特殊字符转义,可防止message内容包含HTML标签字符时破坏描述的整体样式。
内容的提问来源于stack exchange,提问作者Sameer Atharkar
相关产品推荐
相关产品推荐

