Вот мой config.json:передачи аргументов JQ фильтра
{
"env": "dev",
"dev": {
"projects" : {
"prj1": {
"dependencies": {},
"description": ""
}
}
}
}
Вот команды мой Баш:
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'? Почему вы не используете оболочку для заполнения переменной типа 'JQ" .dev.projects. $ PRJNAME»config.json'? –
@RamboRamon, используя оболочку для заполнения переменной, подвержен ошибкам - подумайте, содержит ли она символы, такие как кавычки, которые необходимо экранировать. 'Jq' гарантированно генерирует синтаксически допустимый вывод. –