将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
,但我也无法使它正常工作!)