🗒️curl钉钉告警${content}文本含空格/换行的问题
2023-1-2
| 2023-4-10
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password

1.问题

text类型钉钉告警,官方模板提供的文本是一行文字,如果需要${content}变量来替换这一行文字呢?什么都不处理会导致JSON解析异常,无法发出消息。
${content}模板,含空格、换行 hello world! 今天天气不错!
{ "at": { "atMobiles":[ "180xxxxxx" ], "atUserIds":[ "user123" ], "isAtAll": false }, "text": { "content":"我就是我, @XXX 是不一样的烟火,'${content}'" }, "msgtype":"text" }

2.解决办法:

2.1 换行符用\n替换

cat ${content}|tr "\\n" ','|sed 's/,/\\\\n/g' >${new_content}

2.2 空格用Unicode编码替换

半角空格(英文符号)\u0020。空格尝试过两种方式,第一种不处理,最终的空格被解析成‘’;第二种是替换成\b,结果空格被吃了,“a b c”成了“abc”
sed -i 's/ /\\\\u0020/g' ${new_content}
 
技术
  • 监控
  • scripts
  • kafka的broker不均衡和leader不均衡处理k8s的jvm内存泄露排查
    目录