将变量插入json有效负载(slack webhook)问题的Bash脚本

将变量插入json有效负载(slack webhook)问题的Bash脚本,json,bash,variables,Json,Bash,Variables,我试图在json负载中插入一个变量(在shell脚本中工作),但我不确定如何正确地转义字符 我尝试过许多不同的转义方法,但我完全不懂,我要么返回文本字符串,要么它不运行 SLACK_ALERT_WEBHOOK=desiredurl curl -X POST -H 'Content-type: application/json' --data '{"text": "*Daily Webhook Verification*", "attachments": [ {

我试图在json负载中插入一个变量(在shell脚本中工作),但我不确定如何正确地转义字符

我尝试过许多不同的转义方法,但我完全不懂,我要么返回文本字符串,要么它不运行

SLACK_ALERT_WEBHOOK=desiredurl

curl -X POST -H 'Content-type: application/json' --data '{"text": "*Daily Webhook Verification*", "attachments": [
        {
            "blocks": [
                {
                    "type": "section",
                    "text": {
                        "type": "mrkdwn",
                        "text": "Slack post failed for webhook, please investigate: $SLACK_ALERT_WEBHOOK"
                    }
                }
            ]
        }
    ]}' "$SLACK_ALERT_WEBHOOK"
我只想将SLACK\u ALERT\u WEBHOOK的值插入代码“text”的这一部分:“SLACK post对WEBHOOK失败,请调查:$SLACK\u ALERT\u WEBHOOK,但它要么不运行,要么返回文本字符串。我有底部的“$SLACK\u ALERT\u WEBHOOK”“在底部工作成功,发送到我想要的松弛通道,因此我不担心这一点

多亏了tripleee,我才得以工作:

curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"*Verification*\", \"attachments\": [{\"blocks\": [{\"type\": \"section\",\"text\": {\"type\": \"mrkdwn\",\"text\": \"$SLACK_ALERT_WEBHOOK\"}}]}]}" $SLACK_ALERT_WEBHOOK
试试这个:

SLACK\u ALERT\u WEBHOOK=desiredurl
$(curl-X POST-H'内容类型:application/json'--data'{“text”:“*每日Webhook验证*”,“附件”:[
{
“区块”:[
{
“类型”:“节”,
“文本”:{
“类型”:“mrkdwn”,
“text”:“webhook的Slack post失败,请调查:`echo$Slack\u ALERT\u webhook`”
}
}
]
}
]}“`echo$SLACK\u ALERT\u WEBHOOK`”)

使用
echo
它应该只是作为命令运行它。我在自己的服务器上测试了它,但在您的服务器上可能会有不同的效果。希望有帮助。

谢谢您的反馈!我已尝试实现您的
echo$SLACK\u ALERT\u WEBHOOK
,但在频道显示echo$SLACK\u ALERT\u WEBHOOK而不是desiredurl时,我仍然遇到了相同的问题(尽管如果您熟悉SLACK,“”添加了一些文本格式)。我想我可能需要改变我的方法,并将变量从文本行中分离出来。反勾号在单引号中没有任何用处。使用Python可能值得一看?同意,但我正在向现有应用程序中添加额外代码,以便ship已经运行。你真的希望
curl
命令返回shell吗命令行您确定可以安全地在计算机上作为shell命令执行吗?如果不是的话,
curl
周围的
$(…)
就大错特错了。很抱歉,我已经复制粘贴了我的一部分代码,但没有看到。我一直在将该命令的结果传递到一个变量中,以验证webhook是否成功。我已经编辑了我的文章,以使其更有意义。我正在查看重复的帖子,但我的帖子稍微复杂一点(我自己的错误是这样设置的)。无论如何,答案都很简单。也许你也看到了,好吧,从这个链接中我得到的答案是,我已经引用了整个PayloadOK,我现在正在尝试通过删除单引号来实现以下目的。#/bin/bash SLACK_-ALERT_-WEBHOOK=desiredurl curl-X POST-H'内容类型:application/json'--数据“{”text”:“验证”,“附件”:[{”blocks:[{”type:“section”,“text:{”type:“mrkdwn”,“text:“$SLACK_-ALERT_-WEBHOOK”}]}”$SLACK ALERT_-WEBHOOK,但返回的有效载荷无效