【发布时间】:2018-07-13 17:56:49
【问题描述】:
当 nginx 无法重新加载时,我正在尝试 cURL 松弛。我能够检查 nginx 是否失败,并且可以在它失败时卷曲松弛。尝试在我的 cURL 命令中包含来自失败重新加载的错误消息时,我遇到了无效的有效负载错误。这是我必须这样做的脚本:
#!/bin/bash
OUTPUT=$(nginx -s reload 2>&1 > /dev/null >/mnt/efs/out.txt)
ESCAPE=$(echo $OUTPUT | sed 's/"/\"/g' | sed "s/'/\'/g" )
nginx -t || curl -X POST --data-urlencode 'payload={"username": "reload-monitor-lizard", "text": "'"${ESCAPE}"'", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/xxxxxxx/xxxxx/xxxxxxxxxxxxxxxxxxxx
我尝试过使用引号,但它仍然给我无效的有效负载错误或发送
${ESCAPE}
作为消息。关于我做错了什么有什么建议吗?
更新:
通过用单引号替换变量中的双引号来解决此问题,如下所示:
ESCAPE=$(echo $OUTPUT | sed "s/\"/'/g" )
【问题讨论】: