JQ: неправильно использовать переменную окружения - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть envs.json файл с содержимым:

{ 
  "dev-cc1": { "url": "https://my-url.com" }, 
  "dev-cc2": { "url": "https://my-url.com" }
}

Я хотел бы получить URL-адреса на основе переменной окружения $ENV, но каждая другая связанная статья, с которой я сталкивался, не выглядела работать, или я просто прочитал это неправильно. Я думаю, что упускаю что-то супер тривиальное ...

То, что я пробовал:

export ENV="dev-cc1"
jq --arg ENV "$ENV" -n '."env.ENV"' envs.json

Поскольку в моей переменной env есть da sh, я процитировал ее, и затем попытался сослаться на это внутри. Однако jq возвращает обратно null.

Работает жестко закодированный запрос (jq --arg ENV "$ENV" '."dev-cc1"' envs.json), и я также подтвердил, что переменная окружения передана правильно jq --arg ENV "$ENV" -n 'env.ENV'.

Я пробовал множество различных способов заменить это env var in но никто не работал .. Может кто-нибудь дать ему вторую пару глаз?

1 Ответ

2 голосов
/ 09 февраля 2020

Попробуйте

ENV="dev-cc1" jq '.[env.ENV]' envs.json

или

export ENV="dev-cc1"
jq '.[env.ENV]' envs.json

или с помощью переменной jq:

ENV="dev-cc1"
jq --arg ENV "$ENV" '.[$ENV]' envs.json
...