下面是我的配置json:
{
"env": "dev",
"dev": {
"projects" : {
"prj1": {
"dependencies": {},
"description": ""
}
}
}
}
下面是我的bash命令:
PRJNAME='prj1'
echo $PRJNAME
jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json
jq '.dev.projects.prj1' config.json
输出:
prj1
null
{
"dependencies": {},
"description": ""
}
因此,$PRJNAME是prj1,但第一次调用只输出null
。
有人能帮帮我吗?
5条答案
按热度按时间alen0pnh1#
示例中的jq程序
.dev.projects."$v"
将尝试查找名为"$v"
的键。4c8rllxm2#
当你创建json时,你也可以使用
--argjson
。bwntbbo33#
正如上面的评论中所问的,有一种方法可以传递多个参数,也许有一种更优雅的方法,但它是有效的。
当然你可以把这些结合起来!
zvokhttg4#
您可以执行以下操作:
qxsslcnc5#
我的示例bash命令替换json文件中的数组。所有内容都在变量中: