shell脚本调用接口获取返回值 遍历下载文件
程序员文章站
2022-04-30 21:10:07
...
#!/bin/bash
#获取当前服务器的名称
HN=`hostname`
#截取当前模型名称
name= echo ${HN%-*}
#name=ceshi_lcx
#echo $name
#当前模型下可用数据下载地址
url="http://ip:30388/aFile?name=$name"
#returnData=$(curl -X GET $url -H "accept:*/*" | jq '.[] | {path:.path}')
#请求接口返回完整数据
returnData=$(curl -X GET $url -H "accept:*/*" | jq '. ')
#echo $returnData
#获取json数组长度
length=$( echo $returnData | jq '. | length')
#length=$(curl -X GET $url -H "accept:*/*" | jq '. | length')
int=0
mkdir data_download
#遍历数组 下载数据文件
while(($int<$length))
do
echo $int
#取出第int个数据 的path 属性
data=$( echo $returnData | jq --argjson int $int '.[$int] | .path')
echo $data
#去掉双引号 空格 换行
rety=$(echo $data | sed 's/ //g' | sed 's/\"//g' | sed 's/\n//g')
#echo $rety
#取出第int个数据 的name 属性
Name=$( echo $returnData | jq --argjson int $int '.[$int] | .name')
fileName=$(echo $Name | sed 's/ //g' | sed 's/\"//g' | sed 's/\n//g')
echo $fileName
curl -o data_download/$fileName "${rety}"
let "int++"
done