为什么这不能按预期工作?
$ false && { echo ok; echo ok; } && { echo notOK; }
这不是:
$ false && { echo ok; echo ok; } || { echo notOK; }
我没看到!
答案1
这就是如何&&
工作||
。
&&
如果左侧以“真”值 (0) 结束,则执行右侧。
||
如果左侧以“假”值(!0)结束,则执行右侧。
false && { echo ok; echo ok } || { echo notOK; }
是这样处理的:
false
返回 1&&
不执行`{ echo ok; echo ok }' 因为左侧不为 0||
确实执行,{ echo notOK; }
因为左侧不为 0