[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 =。これはなぜですか?
bash manpage の「Shell Grammar/Pipelines」サブセクションで説明されています。 Pipelines セクションで提供したリンクでも説明されています。このセクションでは、 "Reserved Words" の下にインデックスが付けられています。
パイプライン
パイプラインは、制御演算子の1つで区切られた1つ以上のコマンドのシーケンスです。または|&。パイプラインの形式は次のとおりです。
[time [-p]] [ ! ] command [ | or |& command2 ... ]
コマンドの標準出力は、パイプを介してコマンド2の標準入力に接続されます。この接続は、コマンドで指定されたリダイレクトの前に実行されます(下記のリダイレクトを参照)。 |&を使用すると、コマンドの標準エラーがパイプを介してcommand2の標準入力に接続されます。 2>&1 |の省略形です。この標準エラーの暗黙的なリダイレクトは、コマンドで指定されたリダイレクトの後に実行されます。
Pipefailオプションが有効になっていない限り、パイプラインの戻りステータスは、最後のコマンドの終了ステータスです。 pipefailが有効になっている場合、パイプラインの戻りステータスは、ゼロ以外のステータスで終了する最後の(右端の)コマンドの値、またはすべてのコマンドが正常に終了した場合はゼロです。予約語なら!パイプラインの前にある場合、そのパイプラインの終了ステータスは、上記の終了ステータスの論理否定です。シェルは、パイプライン内のすべてのコマンドが終了するのを待ってから、値を返します。
予約されたWordの時間がパイプラインの前にある場合、パイプラインの終了時に、その実行によって消費された経過時間とユーザー時間およびシステム時間が報告されます。 -pオプションは、出力形式をPOSIXで指定された形式に変更します。 TIMEFORMAT変数には、タイミング情報の表示方法を指定するフォーマット文字列を設定できます。以下のシェル変数のTIMEFORMATの説明を参照してください。
パイプラインの各コマンドは、個別のプロセスとして(つまり、サブシェルで)実行されます。
Bashリファレンスマニュアルは、info
を使用してコンソールで表示できます。次に、ユーザーはi
キーを押してキーワードを検索し、キーワードを入力してEnter
キーを押します。 info
は、キーワードに関連付けられた、マニュアル内の最初の場所にジャンプします。押す ,
他の場所にアクセスします。詳細については、GNU情報マニュアル、オンライン、またはinfo info
。実際、マニュアルでキーワードをすばやく見つけるために最も重要なことは、既存のインデックスを使用することです。
この問題に関する本質的な事実は、time
はbuiltinではなく、バッシュ予約語またはキーワード。