[fakename]$ help time
time: time [-p] pipeline
Report time consumed by pipeline's execution...
こういう観点から見ると、time
Bashに組み込まれているようです。ただし、このページではその説明が見つかりません。https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html#Shell-Builtin-Commands。なぜですか?
ベストアンサー1
これは、「シェル構文/パイプライン」のサブセクションで説明されています。バッシュマンページ。これは提供されたリンクにも記載されています。管路次のように索引付けされたセクション「予約語」。
管路
パイプは、制御演算子で区切られた1つ以上の命令シーケンスです。または|&。パイプの形式は次のとおりです。
[time [-p]] [ ! ] command [ | or |& command2 ... ]
コマンドの標準出力はコマンド2の標準入力にパイプされます。この接続は、コマンドで指定されたリダイレクトの前に行われます(以下のリダイレクトを参照)。 |& を使用すると、コマンドの標準エラーが command2 の標準入力にパイプされます。これは2>&1 |の略です。標準エラーの暗黙的なリダイレクトは、コマンドで指定されたリダイレクトの後に実行されます。
パイプライン障害オプションが有効になっていない場合、パイプラインの戻り状態は最後のコマンドの終了状態です。パイプライン障害がアクティブな場合、パイプラインの戻り状態は、ゼロ以外の状態で終了した最後の(最も右側の)コマンドの値、またはすべてのコマンドが正常に終了した場合は0です。予約語なら!パイプの前のパイプの終了状態は、上記の終了状態に対する論理的な否定です。シェルは、値を返す前にパイプライン内のすべてのコマンドが終了するのを待ちます。
時間予約語がパイプラインの前にある場合、パイプラインが終了すると、実行経過時間がユーザー時間とシステム時間とともに報告されます。 -p オプションは、出力形式を POSIX で指定した形式に変更します。 TIMEFORMAT変数は、タイミング情報の表示方法を指定するフォーマット文字列に設定できます。以下のシェル変数の下のTIMEFORMATの説明を参照してください。
パイプラインの各コマンドは、別々のプロセス(つまりサブシェルで)で実行されます。