&&
複数のコマンドの使用と実行の違いは何ですか;
?
例:
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番目のコマンドを評価する必要はありません。