curl向Discord api发送的json中的变量插入,“URL位置X中的右大括号/方括号不匹配”

dphi5xsq  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(130)

我在向Discord发送curl请求时遇到了一个小问题。
我脚本:

#!/bin/bash
discord_webhook="https://discord.com/api/webhooks/ID/XXXXX"
tmp_file=/tmp/toblock.tmp
blocked_ip=$(paste -s -d ' ' $tmp_file)
if ! [ -z "$discord_webhook" ]; then
curl -H "Content-Type: application/json" -d '{"username": "IP blocking", "embeds":[{"title":"New IP(s) blocked","description":"'$blocked_ip'"}]}' "$discord_webhook"
fi

/tmp/toblock. tmp的内容为以下两行(测试随机ip):

15.15.15.15
16.16.16.16

错误是

root@vm1 ~ # bash ad.sh
curl: (3) unmatched close brace/bracket in URL position 13:
16.16.16.16"}]}
            ^

有人能看到我的Curl请求中的错误吗?

pu82cl6c

pu82cl6c1#

$blocked_ip包含空格,因此将JSON拆分为多个参数。您需要将其放在双引号中以防止出现这种情况。

curl -H "Content-Type: application/json" -d '{"username": "IP blocking", "embeds":[{"title":"New IP(s) blocked","description":"'"$blocked_ip"'"}]}' "$discord_webhook"

相关问题