将字符串放入curl命令而不使用转义字符

时间:2015-09-04 14:23:51

标签: linux string bash scripting

好吧这可能是非常明显的,但对于我的生活,我无法弄明白。 我想从带有-d标记的脚本调用curl命令来传递一些JSON

#!/bin/bash
JSON_STR='{"Some":"JSON","Data":"Here"}'
curl -x PUT "http://localhost:port/api/url" -d $JSON_STR

现在,如果我回应curl命令来查看它的外观

echo curl -x PUT "http://localhost:port/api/url" -d $JSON_STR

一切都很好看:

curl -x PUT "http://localhost:port/api/url" -d '{"Some":"JSON","Data":"Here"}'

但是API正在抱怨逃脱字符,它的看法

'{\"Some\":\"JSON\",\"Data\":\"Here\"}'

现在我明白为什么他们在那里(逃避字符),但我如何在脚本命令中摆脱它们? bash中是否有原始字符串?

提前致谢

1 个答案:

答案 0 :(得分:1)

通过截断JSON_STR并仅使用以下

来解决此问题
curl -x PUT "http://localhost:port/api/url" \
    -d '{"Some":"JSON","Data":"'"$VARIABLE"'"}'