如何在bash变量中保护curl结果

如何在bash变量中保护curl结果,bash,curl,Bash,Curl,当我运行命令时 curl-d“param1=value1¶m2=value2”-X POSThttps://xxx.xxxx.de/xx/xx.php 2> /dev/null在普通命令行上,我得到请求的结果{“success”:false,“cause”:“tokenneeded”} 我需要bash脚本上的这个结果,但是当我尝试运行它时 curl = "$(curl -d "param1=value1&param2=value2" -X POST https://xxx.xxx

当我运行命令时
curl-d“param1=value1¶m2=value2”-X POSThttps://xxx.xxxx.de/xx/xx.php 2> /dev/null
在普通命令行上,我得到请求的结果
{“success”:false,“cause”:“tokenneeded”}

我需要bash脚本上的这个结果,但是当我尝试运行它时

curl = "$(curl -d "param1=value1&param2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)"
echo $curl
我没有收到要求的结果我收到了这个

[1/2]: "success":false --> <stdout>
--_curl_--"success":false
curl: (3) URL using bad/illegal format or missing URL

[2/2]: "cause":"Token needed" --> <stdout>
--_curl_--"cause":"Token needed"
curl: (3) URL using bad/illegal format or missing URL
[1/2]:“成功”:错误-->
--_“成功”:false
curl:(3)使用错误/非法格式的URL或缺少URL
[2/2]:“原因”:“需要令牌”-->
--_卷曲--“原因”:“需要令牌”
curl:(3)使用错误/非法格式的URL或缺少URL

如何在bash脚本中使用正确的结果?

您的命令不是变量赋值,它尝试使用参数
=
和命令替换的输出执行
curl
。删除
=
前后的空格字符,可以省略命令替换前后的引号(这是不需要引号的少数情况之一)

curl=$(curl -d "param1=value1&param2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)
echo "$curl"