我在一个文件中有一些json数据存储。该文件的每一行都是一条json消息。
而不是:
curl -X POST -d '{data:{something}}'
逐一。我尝试使用:
while read data
>do
>curl -X POST -d @$data
>done < file
然而它不起作用,因为shell可能是数据是一些没有单引号的文本。
无论如何我可以修改这个脚本吗?
错误信息是这样的
curl: (3) [globbing] illegal character in range specification at pos 3
curl: (3) [globbing] illegal character in range specification at pos 3
* getaddrinfo(3) failed for "something"::10
* Couldn't resolve host '"something":'
* Closing connection #1
curl: (6) Couldn't resolve host '"something":'
curl: (3) [globbing] unmatched brace at pos 20
etc...
答案 0 :(得分:0)
您需要对shell变量进行双引号以防止shell执行word splitting和filename expansion:
curl -X POST -d "$data"