【发布时间】:2020-09-11 23:29:43
【问题描述】:
为什么会这样表达
[ 1 -eq 1 -a 1 -eq 2 ]
返回退出代码 1
而[ true -a false ] 没有?无论我如何结合真假,后者总是输出退出代码 0。我认为 true 和 false 是返回退出代码 0 或 1 的命令。如果是这样,为什么表达式不输出退出代码 1?我想知道这到底是如何工作的。谢谢你的帮助。我是 linux 新手,如果问题太基本,我很抱歉。谢谢。
【问题讨论】:
-
因为真假都是非空字符串???
-
顺便提一下,
-a在the POSIX standard fortest中被标记为“过时”,不应在新代码中使用。将多个单独的test调用与&&组合起来,如[ 1 -eq 1 ] && [ 1 -eq 2 ]
标签: linux shell terminal brackets square