如果输入为空,则以非零值退出
Exit with non-zero if input is empty
我正在尝试使用 JQ 解析我的 curl 输出并检查退出代码,因此当我的 curl 输出为空时,JQ return 0 退出代码。
例如:
$ echo "" | jq '.key'
$ echo $?
0
如何使这个 return 1 或一些非零值?
您应该在命令行中使用 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
如果你想在输入为空时指定return代码,你可以使用halt_error/1
,像这样:
$ echo "" | jq -n 'try input.key catch halt_error(9)' 2> /dev/null
$ echo $?
9
我正在尝试使用 JQ 解析我的 curl 输出并检查退出代码,因此当我的 curl 输出为空时,JQ return 0 退出代码。
例如:
$ echo "" | jq '.key'
$ echo $?
0
如何使这个 return 1 或一些非零值?
您应该在命令行中使用 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
如果你想在输入为空时指定return代码,你可以使用halt_error/1
,像这样:
$ echo "" | jq -n 'try input.key catch halt_error(9)' 2> /dev/null
$ echo $?
9