A | B時間を使用してA | Bを実行するのにかかる時間を測定できますか?

A | B時間を使用してA | Bを実行するのにかかる時間を測定できますか?

時間A | Bは、Aを実行するのにかかる時間だけを測定すると思います(時間パラメータはAなので)。解決策は何ですか?

答え1

シェルによって異なります。例えばBashにはキーワードがありますtimeそれはパイプライン全体の時間です。外部実装はあなたの例timeにのみA表示されます。回避策は、追加のシェルを明示的に実行することです。

time sh -c "A | B"

答え2

次のサブシェルを使用することもできます。

 time ( A | B )

少なくともtimebashが組み込まれたときは(しかし、サブシェルは役に立たなかった)。使いたいなら時間(1)コマンド(参照これsh -c)次のように明示的に実行することをお勧めします。イカチュウが答えた

関連情報