我这个是使用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
该脚本展示了如何在Linux shell中利用curl获取HTTP接口数据,然后使用jq解析JSON,遍历数组并下载每个元素的指定属性。主要涉及JSON处理和文件下载操作。

1万+

被折叠的 条评论
为什么被折叠?



