好吧这可能是非常明显的,但对于我的生活,我无法弄明白。 我想从带有-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中是否有原始字符串?
提前致谢
答案 0 :(得分:1)
通过截断JSON_STR并仅使用以下
来解决此问题curl -x PUT "http://localhost:port/api/url" \
-d '{"Some":"JSON","Data":"'"$VARIABLE"'"}'