shell脚本调用接口获取返回值 遍历下载文件

我这个是使用jq 完成对返回值json串的解析(ps:我的返回值有点复杂,原生linux 字符串处理有点麻烦)

#!/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
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值