パイプライン
パイプラインは、制御演算子の1つで区切られた1つ以上のコマンドのシーケンスです。または|&。パイプラインの形式は次のとおりです。
[time [-p]] [ ! ] command [ | or |& command2 ... ]
コマンドの標準出力は、パイプを介してコマンド2の標準入力に接続されます。この接続は、コマンドで指定されたリダイレクトの前に実行されます(下記のリダイレクトを参照)。|&を使用すると、コマンドの標準エラーがパイプを介してcommand2の標準入力に接続されます。2>&1 |の省略形です。この標準エラーの暗黙的なリダイレクトは、コマンドで指定されたリダイレクトの後に実行されます。
パイプラインの戻りステータスは、pipefailオプションが有効になっていない限り、最後のコマンドの終了ステータスです。pipefailが有効な場合、パイプラインの戻りステータスは、ゼロ以外のステータスで終了する最後の(右端の)コマンドの値、またはすべてのコマンドが正常に終了した場合はゼロです。予約語なら!パイプラインの前にある場合、そのパイプラインの終了ステータスは、上記の終了ステータスの論理否定です。シェルは、値を返す前に、パイプライン内のすべてのコマンドが終了するのを待ちます。
時間予約語がパイプラインの前にある場合、パイプラインの終了時に、その実行によって消費された経過時間とユーザー時間およびシステム時間が報告されます。-pオプションは、出力形式をPOSIXで指定された形式に変更します。TIMEFORMAT変数には、タイミング情報の表示方法を指定するフォーマット文字列を設定できます。以下のシェル変数のTIMEFORMATの説明を参照してください。
パイプラインの各コマンドは、個別のプロセスとして(つまり、サブシェルで)実行されます。
type time
それが何であるかを確認するために使用します。