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)
通过用单引号替换变量中的双引号来修复。就像这样:
ESCAPE=$(echo $OUTPUT | sed "s/\"/'/g" )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12823 次 |
| 最近记录: |