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

使用jq传递参数时插入键未实现变量插值的问题

解决jq参数未正确插值的问题

你执行的命令如下:

jq --arg md "blablabla" '. +={'content': "$md"}' blog.json

目标文件blog.json内容:

{
"foo": "bar"
}

执行后得到的结果:

{
  "foo": "bar",
  "content": "$md"
}

期望输出:

{
  "foo": "bar",
  "content": "blablabla"
}

问题原因与解决方法

问题根源在于单引号内的内容会被Shell原样保留,所以你写的"$md"并没有被解析为jq的参数变量,而是直接作为字符串$md传递给了jq。同时,jq通过--arg定义的变量,在jq语法里不需要加$前缀,直接使用变量名即可。

修改后的正确命令:

jq --arg md "blablabla" '. += {"content": $md}' blog.json

这种写法直接利用jq原生的变量引用逻辑,避免了Shell与jq的引号冲突,能正确将blablabla插入到JSON中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:10:55