命令变电站在卷曲内不起作用

时间:2015-01-08 16:07:42

标签: json unix curl

我使用以下curl命令发布以下json数据。

curl -d 'json_data={"operation":"core/update","comment":"Synchronization from blah...","class":"Incident","key":{"ref":"I-000060"},"fields":{"public_log":"$(pwd)"}}' 'http://172.27.220.46/itop/webservices/rest.php?version=1.1&auth_user=admin1123&auth_pwd=xxxxx' 

我使用$(pwd)形式的命令替换,但是这不被识别,并且curl以显式形式$(pwd)而不是" root"发布它。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

这是因为整个JSON字符串被单引号'包围,它阻止Bash扩展任何内容:

  ~/temp> export MY_VAR=Hello
  ~/temp>
  ~/temp> echo "$MY_VAR"
  Hello
  ~/temp> echo '$MY_VAR'
  $MY_VAR

您必须用双引号替换单引号并转义其他双引号:

 curl -d "json_data={\"operation\":...

参考: