链接 && 和 ||在壳里

链接 && 和 ||在壳里

为什么这不能按预期工作?

$ 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

相关内容