我有这行代码可以按预期工作:
echo '{"slot":"we"}' | jq -re '.slot' || exit 1
但是,即使我希望如此,这段代码也不会引发错误:
echo ' ' | jq -re '.slot' || exit 1
这也不是:
echo '' | jq -re '.slot' || exit 1
如果找不到
slot
键,我如何确保它会引发错误?我的意思是,在最后两个示例中,退出代码都是 0
为此,一个想法可以是使用 grep 和选项
-q
来传输 jq 命令。
此选项检查输出是否包含任何字符,如果不包含则退出 1
echo ' ' | jq -re '.slot' | grep -q . || exit 1
您的代码在 jq 1.7 上运行良好。如果您使用的是 jq 1.6,您需要这个:
jq -nre 'inputs.slot'