用jq读取JSON布尔字段时,终端显示false不代表命令一定返回失败。默认退出状态主要反映程序是否正常运行,若要让结果参与脚本条件判断,需要理解-e的规则。

把解析成功与条件成立分开
自拟文件result.json包含ok字段,执行jq -e .ok result.json时,最后输出为false或null会返回1;输出为其他值返回0;没有有效结果则返回4。JSON语法错误或程序编译错误另有状态,不能全部归为条件不成立。
数字0与空字符串也需要注意
-e并不照搬某些语言的真假值规则:最后输出是0或空字符串时仍可返回0。若业务只允许JSON布尔true,应写明确的比较表达式,而不是假定所有看起来为空的值都会失败。
多条输出看最后一条
命令产生多条结果时,-e依据最后输出判断。若要检查整个数组是否满足条件,应在jq表达式里先形成一个汇总结论。本站用内存样例验证了true、false、null、0与无输出的退出码,没有读取真实配置。
资料与继续学习
jq官方手册:退出状态。资料查阅日期:2026年10月6日。步骤与练习由本站整理。
资料查阅与编辑日期:2026年10月6日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






