Shell脚本不能为curl请求工作



我想用Databox做一个curl请求来推送一些矩阵,并想在shell脚本中完成它。下面是databox POST请求示例(它像魅力一样工作)

curl https://push.test 
-u token
: 
-X POST 
-H 'Content-Type: application/json' 
-H 'Accept: application/vnd.databox.v2+json' 
-d '{
"data":[
{
"$testcount": 50,
"test_name": "test"
}
]
}'

当我形成json主体作为一个单独的json字符串,并试图传递作为参数,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我是shell脚本新手

#!/bin/bash
JSON_STRING= '{"data" : [{"$testcount":50,"testname":"test"}]}'
echo    "$JSON_STRING" 
curl https://testpush 
-u token
: 
-X POST 
-H 'Content-Type: application/json' 
-H 'Accept: application/vnd.databox.v2+json' 
-d '$JSON_STRING'

错误:{"type":"invalid_json","message":"Invalid request body - JSON parse error"}

我已经为请求添加了令牌,因此授权应该可以工作。

=周围有多余的空白。

另外,$JSON_STRING在第二个脚本的最后一行应该在双引号中而不是单引号中,以使其扩展到您刚刚设置的内容。

顺便说一句。,如果数据失去控制或敏感,您可能希望查看是否有可能以字母@开始数据,然后将其余部分作为包含该数据的文件名。