71 1行で2つの別個のコマンドを実行したい場合、これを行うことができます。 cd /home; ls -al またはこれ: cd /home && ls -al そして、私は同じ結果を得ます。しかし、これら2つの方法でバックグラウンドで何が起こっているのでしょうか?それらの機能的な違いは何ですか? bash — ショーンP ソース
88 は、;1つのコマンドを別のコマンドから分離するだけです。ザ・は&&前回が成功した場合のみ、次のコマンドを実行しますと言います cd /home; ls -al これはcd /home、cdコマンドが失敗した場合(/home存在しない、それをトラバースする権限がないなど)でも実行されますls -al。 cd /home && ls -al これはls -al、cd /home成功した場合にのみ実行されます。 — user9517 ソース 2 ; たとえば、の使用は非常に危険です(少なくともrmコマンドでは)cd /some/dir; rm -fr ./*。したがって、このような破壊的な操作では、rmを実行する前に適切な場所にいることを確認する必要があります。正しいコマンドはcd /some/dir && rm -fr ./* — -ALex_hha
70 a && b aがゼロの終了コードを返す場合、bが実行されます。 a || b aがゼロ以外の終了コードを返す場合、bが実行されます。 a ; b aが実行され、次にbが実行されます。 — ミンソクの歌 ソース
16 cd /fakedir; ls -al 失敗するlsため現在のディレクトリで実行され、cd /fakedirシェルはゼロ以外の終了ステータスを無視します。 cd /fakedir && ls -al &&前のコマンドが正常に終了した場合(状況がゼロ)のみオペレーターが続行するため、操作はls実行されません。 &プロセスをバックグラウンドにするなど、他の演算子があります。多くの場合、コマンドの最後に配置されますが、チェーンの途中に配置することもできます。 — ジェフ・ファーランド ソース
4 また、if..then..elseコマンドロジックをチェーン化するようにそれらを結合することもできます。 例: ls file.ext && echo "file exists" || echo "file does not exist" — Mtl Dev ソース
;
たとえば、の使用は非常に危険です(少なくともrmコマンドでは)cd /some/dir; rm -fr ./*
。したがって、このような破壊的な操作では、rmを実行する前に適切な場所にいることを確認する必要があります。正しいコマンドはcd /some/dir && rm -fr ./*