我有一个JSON文件,我正在尝试从下面获取值
[a223180n@363748ln41dk012 ~]$ cat status.json| jq '.details.server1.status'
"UP"
在我的脚本中,我可以选择用户输入服务器名称的位置。因此,我需要脚本选择该值并相应地更新我在下面使用的jq命令,但失败了。
jq是1.6版本
[a223180n@363748ln41dk012 ~]$ cat status.json| jq --arg server server1'.details.$server.status'
jq: error: syntax error, unexpected '$', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.details.$service.status
jq: 1 compile error
答案 0 :(得分:2)
< status.json jq --arg server server1 '.details[$server].status'
点运算符是[]
运算符的特殊版本,仅与 literal 键一起使用。您在此处有一个用于键的变量,因此您需要[]
运算符。