使用shell var作为jq引用的哈希

时间:2019-11-06 16:55:48

标签: json bash jq

将var设置为某些JSON:

theOutput='{ "name": "test", "lights": [ "6", "7" ], "state": { "6": { "on": true }, "7": { "on": false } } }'

要访问打开状态6,我使用嵌套的哈希值,并且需要引用6(因为它以数字开头):

echo $theOutput | jq -rc '.state."6".on'
true

我想用bash脚本中的系统变量替换“ 6”和“ on”(还有其他状态,为简洁起见未显示),所以用lightId=6

echo "$theOutput" | jq -rc '.state."'$lightId'".on'
true

但是我看不到如何对状态进行处理,应该使用lightState=on

echo "$theOutput" | jq -rc '.state."'$lightId'".$lightState'
true

(我看过--arg stateString $lightState,但我也无法使它正常工作!)

0 个答案:

没有答案