&&と[冗長]を使用して複数のコマンドを実行することの違い

&&と[冗長]を使用して複数のコマンドを実行することの違い

&&複数のコマンドの使用と実行の違いは何ですか;

例:

echo "Hi\!" && echo "How are you?"

そして

echo "Hi\!"; echo "How are you?"

答え1

シェルでコマンド&&;終了するために使用できるという点で似ています。違いは&&条件付き演算子でもあるということです。 With;の後に続くコマンドは常に実行されますが、Withの後に続くコマンド&&は最初のコマンドが成功した場合にのみ実行されます。

false; echo "yes"   # prints "yes"
true; echo "yes"    # prints "yes"
false && echo "yes" # does not echo
true && echo "yes"  # prints "yes"

;改行文字は終了コマンドと交換可能です。

答え2

&&||ブール演算子です。 &&は論理AND演算子で、bashは近道評価したがって、2番目のコマンドは、式全体が真になる可能性がある場合にのみ実行されます。最初のコマンドがfalseと見なされた場合(ゼロ以外の終了コードとして返された場合)、AND式全体がtrueにならないため、2番目のコマンドを評価する必要はありません。

同じ論理が論理 OR(||) にも同様に適用されます。最初のコマンドが成功すると、OR式全体がtrueになるため、2番目のコマンドを評価する必要はありません。

関連情報