本指南说:
An if/then construct tests whether the exit status of a list of commands is 0
如果我0
在 bash 中执行,它会显示:
0: command not found
因此它的退出状态不是 0,也[ 0 ]
应该返回非零值退出状态。但它实际上返回 0 退出状态,并且if [ 0 ]
执行的是then
语句,而不是语句else
。
有人能解释一下吗?
答案1
[
不是if
语句的一部分,它是一个计算表达式的命令。[ 0 ]
返回 true,因为表单的[ Expression ]
计算结果始终为 0。如果您尝试,if [ 1 -eq 2 ]
该then
语句将不会运行。
检查手册页了解更多信息。