尝试 cURL slack 时获取无效负载

use*_*670 4 bash curl nginx slack

当 nginx 无法重新加载时,我尝试 cURL slack。我能够检查 nginx 是否失败,并且在失败时可以 cURL slack。当尝试将重新加载失败的错误消息包含在 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
Run Code Online (Sandbox Code Playgroud)

我尝试过使用引号,但它仍然给我无效的有效负载错误或发送

${逃脱}

作为消息。关于我做错了什么有什么建议吗?

更新:

通过将变量中的双引号替换为单引号来修复此问题,如下所示:

ESCAPE=$(echo $OUTPUT | sed "s/\"/'/g" )
Run Code Online (Sandbox Code Playgroud)

use*_*670 5

通过用单引号替换变量中的双引号来修复。就像这样:

ESCAPE=$(echo $OUTPUT | sed "s/\"/'/g" )
Run Code Online (Sandbox Code Playgroud)