将参数传递给jq过滤器 [英] passing arguments to jq filter

查看:115
本文介绍了将参数传递给jq过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的config.json:

Here is my config.json:

{
    "env": "dev",
    "dev": {
        "projects" : {
            "prj1": {
                "dependencies": {},
                "description": ""
            }
        }
    }
}

这是我的bash命令:

Here are my bash commands:

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.

So $PRJNAME is prj1, but the first invocation only outputs null.

有人可以帮助我吗?

推荐答案

示例中的jq程序.dev.projects."$v"实际上将尝试查找名为"$v"的键.请尝试以下操作:

The jq program .dev.projects."$v" in your example will literally try to find a key named "$v". Try the following instead:

jq --arg v "$PRJNAME" '.dev.projects[$v]' config.json 

这篇关于将参数传递给jq过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆