添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Linux-shell-curl-put命令变量及换行问题报错和解决讲解

发布于: 2021-12-19 11:37:21 栏目: 技术文档

1. 最近在使用shell curl自动处理ETL时,需要定时触发一API,使用方式为PUT,但是多次触发均失败,命令如下:

curl -g -i -H "Content-type: application/json" \

-X PUT "101.201.81.101:8080/preaggregate" \

'{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,"type":"range","dayRanges":[${startdate},${enddate}]}'

请求结果报错

1.自动换行多了一个 "

",原因是json太长,unix会自动换行,换行发送json后,会在json内自动加上该换行符,api解析json会出错,解决该问题的办法就是先定义变量值;

put_pre='{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,'

2.变量使用方式不正确,json内不应该出现${startdate},${enddate}这样的变量,应该改为'xxx'${startdate}'xxx'。

整理后的正确请求方式为:

curl -g -i -H "Content-type: application/json" \

-X PUT "101.201.81.101:8080/preaggregate" \

${put_pre}'"type":"range","dayRanges":['${startdate}','${enddate}']}'

大家在使用过程中可能也会遇到以上问题,使用这种方式处理即可。

SaaS的续费率为什么那么低?
中国SaaS产业表面风光无限 为什么说很难盈利
Code Review有什么好处?
什么是Istio? Istio究竟是干嘛的?
linux mv命令怎么用