Here is my config.json:
{ "env": "dev", "dev": { "projects" : { "prj1": { "dependencies": {}, "description": "" } } } }
Here are my bash commands:
PRJNAME='prj1' echo $PRJNAME jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json jq '.dev.projects.prj1' config.json
The output:
prj1 null { "dependencies": {}, "description": "" }
So $PRJNAME is prj1, but the first invocation only outputs null.
null
Can someone help me?
The jq program .dev.projects."$v" in your example will literally try to find a key named "$v". Try the following instead:
.dev.projects."$v"
"$v"
jq --arg v "$PRJNAME" '.dev.projects[$v]' config.json
2.1m questions
2.1m answers
60 comments
57.0k users