此问题在此处已有答案:
How do I insert a bash variable into the JSON body of a cURL request?(2个答案)
Using curl POST with variables defined in bash script functions(11个答案)
13天前关闭。
我在写一个bash脚本。在一个curl命令中我需要一个变量...只是它从来没有被识别,或者命令不起作用。我搜索了论坛,但没有找到任何合适的。你能帮助我吗?
message="test"
curl -XPOST -d '{"msgtype":"m.text", "body":"$message"}' $curlurl
因为我需要这个json格式,所以必须保留双引号。
谢谢你。你好丹尼尔
我试过:
将单引号替换为双引号... \以失去其含义...但没有任何效果。
1条答案
按热度按时间ppcbkaq51#
$message
出现在单引号字符串中,因此未展开。("
只是该单引号字符串的一部分,与shell引号无关。)“正确的”版本是将字符串用双引号引起来,并对嵌入的引号进行转义:
但这既繁琐又脆弱,因为您需要确保
message
值中的任何双引号都被正确转义。@-
告诉-d
选项从标准输入读取。