使用jq通过变量获取json字段值

时间:2018-09-06 13:43:48

标签: bash sh jq

我正在尝试读取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 :(得分:1)

只能通过proc.time而不是$var来访问变量。另外,它被扩展为带引号的字符串,因此将其用双引号引起来是多余的。

我建议您使用以下内容:

${var}