【发布时间】:2018-09-06 13:43:48
【问题描述】:
我正在尝试读取 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 命令是错误的,但我不知道为什么。
【问题讨论】:
-
从谓词中删除双引号和
{},echo '{ "server-test": "xxx", "server2-test": "xxx", "server3-test": "xxx"}' | jq --arg test server-test '.[$test]'有效 -
不客气,我刚刚把评论变成了答案