Ответ 1
Программа jq .dev.projects."$v"
в вашем примере будет буквально пытаться найти ключ с именем "$v"
. Вместо этого попробуйте следующее:
jq --arg v "$PRJNAME" '.dev.projects[$v]' config.json
Вот мой 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
.
Может кто-нибудь мне помочь?
Программа jq .dev.projects."$v"
в вашем примере будет буквально пытаться найти ключ с именем "$v"
. Вместо этого попробуйте следующее:
jq --arg v "$PRJNAME" '.dev.projects[$v]' config.json
вы можете использовать слишком --argjson
, когда вы делаете свой json.
--arg a v set variable $a to value <v>;
--argjson a v set variable $a to JSON value <v>;