我正在使用BLS API开展项目 参考:http://www.bls.gov/developers/api_unix.htm
我目前的脚本如下:
declare id=""
echo -n "Enter id: "
read id
echo -n "enter startyear: "
read startyear
echo -n "enter endyear: "
read endyear
curl -i -X POST -H 'Content-Type: application/json' -d '{"seriesid": ["$id"], "startyear":'$startyear' , "endyear":'$endyear'}' http://api.bls.gov/publicAPI/v2/timeseries/data/
我已经编辑过它,并像在参考页面上一样手工输入ID,这很有用。我似乎无法从输入中读取$ id并将其插入curl命令。非常感谢您对此的任何帮助。
EDIT1:
我更新了代码,并将-d选项的{}引号更改为双引号,同样的错误仍然存在。
EDIT2:
使用我收到的评论中提供的代码更新文件后:
Warning: You can only select one HTTP request!
我跑的时候。
答案 0 :(得分:1)
为了澄清上述评论中的任何混淆,以下内容应该有效:
echo -n "Enter id: "
read id
echo -n "enter startyear: "
read startyear
echo -n "enter endyear: "
read endyear
curl -i \
-X POST \
-H 'Content-Type: application/json' \
-d "{\"seriesid\":[\"${id}\"],\"startyear\":\"${startyear}\",\"endyear\":\"${endyear}\"}" \
http://api.bls.gov/publicAPI/v2/timeseries/data/
答案 1 :(得分:0)
你的-d参数被'
单引号包围,不允许变量插值。使用双引号"args $id "