【问题标题】:Exit with non-zero if input is empty如果输入为空,则以非零退出
【发布时间】:2021-03-04 05:12:36
【问题描述】:

我正在尝试用 JQ 解析我的 curl 输出并检查退出代码,所以当我的 curl 输出为空时,JQ 返回 0 退出代码。

例如:

$ echo "" | jq '.key'
$ echo $?
0

如何使它返回 1 或一些非零值?

【问题讨论】:

    标签: jq exit-code exitstatus


    【解决方案1】:

    如果要在输入为空时指定返回码,可以使用halt_error/1,如下所示:

    $ echo "" | jq -n 'try input.key catch halt_error(9)' 2> /dev/null
    $ echo $?
    9
    

    【讨论】:

      【解决方案2】:

      您应该在命令行上使用input-n/--null-input。这样如果输入为空,JQ 就会失败。

      $ echo | jq -n 'input.key'
      jq: error (at <stdin>:1): break
      $ echo $?
      5
      
      $ jq -n '{key: 1}' | jq -n 'input.key'
      1
      $ echo $?
      0
      

      【讨论】:

        猜你喜欢
        • 2017-04-08
        • 2013-05-11
        • 2022-06-21
        • 2013-11-14
        • 1970-01-01
        • 2015-05-28
        • 2016-04-30
        • 2015-04-30
        相关资源
        最近更新 更多