首页
学习
活动
专区
圈层
工具
发布

jq多参数
EN

Stack Overflow用户
提问于 2019-05-20 18:38:02
回答 1查看 433关注 0票数 1

给定我的data.json中的JSON对象

代码语言:javascript
复制
{
    "prod": {
        "apps": {
            "myapp": {"cloudfront_id":"BINGO-PROD"}
        }
    },
    "stg": {
        "apps": {
            "myapp": {"cloudfront_id":"BINGO-STG"}
        }
    }
}

并在bash中给出以下jq

代码语言:javascript
复制
#!/bin/bash

ENV="prod"
APP="myapp"

OUTPUT=$(cat data.json | jq -rc \
--arg env "${ENV}" \
--arg app "${APP}" \
'.[$env] .apps .[$app] .bar')

此操作失败,并显示以下错误:

代码语言:javascript
复制
jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.[$env] .apps .[$app] .cloudfront_id
jq: 1 compile error

如果我只删除[$app]并用myapp替换它,它就能正常工作。我在运行jq-1.5 --你知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 19:38:34

JQ1.5不支持.key.["key"]语法(1.6支持)。把点放在[$app]前面,你就可以开始了:

代码语言:javascript
复制
.[$env].apps[$app].cloudfront_id
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56219187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档