这是我的config.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
。
有人可以帮我吗?
$v
周围的"
吗?为什么不使用 shell 来填充变量,像这样jq ".dev.projects.$PRJNAME" config.json
? - Rambo Ramonjq
保证生成语法上有效的输出。 - Charles Duffy