我有一个示例json文件,如下所示:
{
"component": {
"id": "xxxxxxxx",
"key": "abc",
"name": "project",
"qualifier": "TRK",
"measures": [
{
"metric": "ncloc",
"value": "43"
},
{
"metric": "bugs",
"value": "0",
"bestValue": true
},
{
"metric": "blocker_violations",
"value": "0",
"bestValue": true
},
{
"metric": "info_violations",
"value": "0",
"bestValue": true
},
{
"metric": "critical_violations",
"value": "0",
"bestValue": true
},
{
"metric": "vulnerabilities",
"value": "0",
"bestValue": true
},
{
"metric": "major_violations",
"value": "0",
"bestValue": true
},
{
"metric": "code_smells",
"value": "0",
"bestValue": true
},
{
"metric": "minor_violations",
"value": "0",
"bestValue": true
},
{
"metric": "reliability_rating",
"value": "1.0",
"bestValue": true
},
{
"metric": "security_rating",
"value": "1.0",
"bestValue": true
}
]
}
}
从上面的.json文件中,我需要获取指标及其相应的值,如下所示:说“bugs:0”。我确实找到了相关的博客,但有点困惑。
我的用例:我想读取所有的指标值,如果任何一个值〈〉0,则执行exit 1,否则执行exit 0。
if [ jq -r '.component.measures[].info_violations.value'!= 0 ]
then
exit 1
else
exit 0
代码没有抛出任何错误,但我确信这是不正确的逻辑,只是尝试了一个指标。现在我清楚了我的用例,我希望有人能帮助我。
我需要提取度量[]中项的所有度量和相应值
1条答案
按热度按时间zkure5ic1#
您可以使用以下JQ过滤器来检查值的
any
是否等于0
:感谢@Glenn指出了
--exit-status
,这让JQ以您需要的状态退出。所以我们可以将其作为exit
值,使用$?
:JqPlay(第一次)