如何在jq中使用arg替换作为key

问题描述 投票:0回答:1

我正在尝试使用 jq 的参数替换,并且其中一个参数必须是键。 我努力了

$reg
- 错误

"$reg"
- 无子

\$reg
- 错误

这可以吗?

export USERNAME=joe
export PASSWORD=whatever
export DOCKER_REGISTRY="hub.docker.io"
jq -n --arg reg "${DOCKER_REGISTRY}" \
        --arg u "$USERNAME" \
        --arg p "${PASSWORD}" \
        --arg auth "$(echo "$USERNAME:$PASSWORD" | base64)" \
        '{
          "auths": {
            $reg: {
              "username": $u,
              "password": $p,
              "auth": $auth
            }
          }
        }'
jq
1个回答
0
投票

顶层关键表达式需要括号:

这应该有效:

export USERNAME=joe
export PASSWORD=whatever
export DOCKER_REGISTRY="hub.docker.io"
jq -n --arg reg "${DOCKER_REGISTRY}" \
        --arg u "$USERNAME" \
        --arg p "${PASSWORD}" \
        --arg auth "$(echo "$USERNAME:$PASSWORD" | base64)" \
        '{
          "auths": {
            ($reg): {
              "username": $u,
              "password": $p,
              "auth": $auth
            }
          }
        }'
© www.soinside.com 2019 - 2024. All rights reserved.