首页 > 解决方案 > Linux方括号真假

问题描述

为什么表达

[ 1 -eq 1 -a 1 -eq 2 ] 

返回退出代码 1

虽然[ true -a false ]没有?无论我如何结合真假,后者总是输出退出代码 0。我认为 true 和 false 是返回退出代码 0 或 1 的命令。如果是这样,为什么表达式不输出退出代码 1?我想知道这到底是如何工作的。谢谢你的帮助。我是 linux 新手,如果问题太基本,我很抱歉。谢谢。

标签: linuxshellterminalbracketssquare

解决方案


[ ... ] 是一个命令,它使用参数调用,你给它(这也是需要空格的原因)。如果你现在给它一个参数,它就会被评估:例如,如果你给它一个字符串文字[ test ],它会确定它是一个非空字符串并返回 0。如果你给它一个空字符串[ ],它将返回 1。真假这种情况也被视为文字字符串,因此它们都是非空的并返回 0。

有关更多信息,请阅读此问题


推荐阅读