シェルのリンク&&と||

シェルのリンク&&と||

なぜ期待どおりに動作しないのですか?

$ false &&   { echo ok;  echo ok; } && { echo notOK; }

これはない:

$ false &&   { echo ok;  echo ok; } || { echo notOK; }

私が見えなかった!

答え1

&&動作方法は次のとおりです||

&&左が「真」の値(0)で終わると、右が実行されます。

||左が「false」値(!0)で終わると、右が実行されます。

false && { echo ok; echo ok } || { echo notOK; }

処理方法は次のとおりです。

  • false1を返す
  • &&` { echo ok; echo ok} '左が0ではないため、実行されません。
  • ||{ echo notOK; }左がゼロではないので実行されます。

関連情報