我需要使用JSON创建一个curl POST方法:
request=`$home/post.curl $url " { \"name\": \"aaaaaaa\", \"message\": \"I NEED TO NOT INTERPRET THIS VAR \${rich_message}\" "`
但是,读取请求的服务器会获得"Message=I NEED TO NOT INTERPRET THIS VAR "
。
我可以做什么?
答案 0 :(得分:1)
如果您需要按字面意思传递整个JSON字符串,请将其放在单引号中:
request=$($home/post.curl "$url" '{ "name": "aaaaaaa",
"message": "I NEED TO NOT INTERPRET THIS VAR \${rich_message}"}$)
(请注意,我添加了缺少的结尾}
并将过时的反引号更改为首选的$(...)
语法。我还将字符串拆分为多行,以便易读。最后,我放{{1}在双引号中,因为这种类型的字符串通常应该被正确引用。)
如果你需要整个字符串是双引号,你使用的语法将需要一个额外的反斜杠(反引号类似于双引号;你需要另一个转义来逃避转义,因为它);但切换到"$url"
也会解决这个副作用。
答案 1 :(得分:0)
\
的{{1}}婴儿是错误的。
此外,您最后缺少$
以获得正确的JSON。
所以适当的JSON应该是:
}