You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy脚本执行jq命令提示/bin/jq: Argument list too long错误如何解决

报错根因

你当前的写法是把存储了curl返回JSON的${projectContent}变量直接作为文件名参数传给jq,当JSON内容体积较大时,会超出系统允许的命令行参数长度上限,触发该错误。

解决方案
  • 方法1:通过管道传递内容给jq
    不需要把JSON内容作为参数传递,通过标准输入喂给jq即可,推荐用printf输出变量内容,避免部分echo实现的默认转义逻辑破坏JSON结构:
Version_List=$(printf '%s' "${projectContent}" | jq -r '.items[] .version')
  • 方法2:用Here-string特性简化写法
    如果流水线运行环境支持bash的here-string特性(绝大多数Linux环境默认支持),可以直接把变量内容作为标准输入传入,写法更简洁:
Version_List=$(jq -r '.items[] .version' <<< "${projectContent}")
  • 方法3:使用Groovy内置JSON解析能力(优先推荐)
    在Groovy流水线中可以直接绕开外部jq命令依赖,用Groovy原生的JSON解析工具提取字段,既不会触发参数长度限制,执行效率和稳定性也更高:
import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper()
def projectJson = jsonSlurper.parseText(projectContent)
def versionList = projectJson.items*.version

内容的提问来源于stack exchange,提问作者user16991581

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:15:03