我使用以下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"发布它。
我做错了什么?
答案 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\":...
参考: