首页 > 解决方案 > 使用 jq 的条件输出

问题描述

我有如下 JSON 输入。

对于第二种情况,我想使用jq退出状态 0(不打印)返回,并打印no such element: xxx到 stderr 并为第一种情况返回退出状态 1。

我不确定如何在jq. 有人可以告诉我jq如何做的代码吗?谢谢。

标签: jsonjqexit-code

解决方案


指定退出代码的一种方法是使用内置过滤器halt_error。据我了解,为了满足您的规格,您可以这样写:

 .value
 | if . then .error | halt_error(1)
   else null | halt_error(0)
   end

请参阅jq 手册了解详细信息并探索变体(例如添加“\n”)。


推荐阅读