`;`と`&&`、`|`の間に違いはありますか? [コピー]

`;`と`&&`、`|`の間に違いはありますか? [コピー]

複数のコマンドを実行するには;&&および|

次のようになります: killall Finder; killall SystemUIServercd ~/Desktop/ && rm Cachesまたは:man grep | man catたとえば。

|ところで;との違いがありますか&&?では、違いは何ですか?

ベストアンサー1

  • ;:aで区切られたコマンドが; 順番に実行されます。シェルは、各コマンドが順番に終了するのを待ちます。

  • &&:後のコマンドは、前のコマンドが終了ステータス0を返した場合にのみ&&実行されます。オペレーター&&だと思ってください。AND

  • |:パイプライン。式では、command1 | command2command1の標準出力はcommand2の標準入力にパイプされます。

言及する価値がある同様の制御演算子がたくさんあります。

  • ||:後のコマンドは、||前のコマンドがゼロ以外の終了ステータスを返した場合にのみ||実行されます。ORオペレーターだと思ってください。とは|まったく||異なる動物です。

  • &:シェルは、&コマンドが完了するのを待たずにバックグラウンドで終了したコマンドを実行し、すぐに終了コード0を返します。&繰り返しますが&&

  • |&2>&1 |:つまり、コマンド1の標準出力と標準エラーがパイプを介してコマンド2の標準入力に接続されます。

また、thenを使用している場合、またはを使用してコマンドを開始することもzshできます。この場合、ジョブは直ちに拒否され、開始された後にジョブ・テーブルに位置はありません。&|&!

おすすめ記事