![&&と[冗長]を使用して複数のコマンドを実行することの違い](https://linux33.com/image/3931/%26amp%3B%26amp%3B%E3%81%A8%5B%E5%86%97%E9%95%B7%5D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%A4%87%E6%95%B0%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AE%E9%81%95%E3%81%84.png)
&&
複数のコマンドの使用と実行の違いは何ですか;
?
例:
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番目のコマンドを評価する必要はありません。