如何将curl获取的JSON数组转为变量赋值格式保存到文件?
解决方案
方法1:通用自动匹配变量名(支持任意长度数组,变量名从a开始递增)
如果你的数组长度不固定或较长,可以用jq将数组索引转换为对应字母(0→a,1→b...),执行以下命令:
curl -s "你的目标URL" | jq -r 'to_entries | map("\(.key | ascii_downcase | [97 + .] | implode)=\(.value)") | .[]' > variables.txt
命令说明:
curl -s:静默请求目标URL获取JSON数据,避免输出多余信息jq -r:以原始字符串格式输出结果(去除JSON默认的引号)to_entries:将数组转换为包含索引(key)和值(value)的键值对集合map(...):遍历每个键值对,将索引转换为对应小写字母(通过ASCII码计算:97是小写a的ASCII值),拼接成变量名=值的格式.[]:将处理后的数组展开为每行一条记录> variables.txt:将最终结果写入指定文件
方法2:固定变量名(适合已知数组长度的场景)
如果数组长度固定,比如你示例中的4个元素,可以直接指定变量名,命令更简洁:
curl -s "你的目标URL" | jq -r '"a=\(.[0])\nb=\(.[1])\nc=\(.[2])\nd=\(.[3])"' > variables.txt
命令说明:
- 通过
.[0]、.[1]等直接提取数组对应位置的元素 - 用字符串拼接生成每行的变量赋值语句,最后写入文件
注意:执行命令前确保系统已安装jq工具,Debian/Ubuntu系可通过sudo apt install jq安装,RHEL/CentOS系用sudo yum install jq安装。
内容的提问来源于stack exchange,提问作者nis
相关产品推荐
相关产品推荐

