Получить значение поля json по переменной с помощью jq - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь прочитать значение поля переменной json, имя поля также сохраняется в переменной.

Что я пробовал:

$ jsonVar=`cat test-config.json`
$ echo $jsonVar
{ "server-test": "xxx", "server2-test": "xxx", "server3-test": "xxx"}
$ echo $it
server-test
$ itVersion=$(jq --arg test "${it}" '.["${test}"]' <<< $jsonVar);
$ echo $itVersion
null

$itVersion теперь должно иметь значение "server-test", но равно null, похоже, моя команда JQ неверна, но я не могу понять, почему.

1 Ответ

0 голосов
/ 06 сентября 2018

Переменная доступна только как $var, а не ${var}. Кроме того, он расширяется до строки в кавычках, поэтому заключение его в двойные кавычки является излишним.

Я предлагаю вам использовать следующее:

itVersion=$(jq --arg test "${it}" '.[$test]' test-config.json)
...