コマンド実行時間統計出力

コマンド実行時間統計出力

コマンド実行の時間統計出力が1(stdout)でも2(stderr)でもないので、どのファイル記述に属するのか聞きたいです!
なぜですか?

#
#
#
# time date 1>/tmp/date_1.out 2>&1

real    0m0.00s
user    0m0.00s
sys     0m0.00s
#
#
#
# cat /tmp/date_1.out
Mon Dec 10 11:20:36 BEIST 2017
#
# 
#

答え1

stdoutまたはstderrに属していませんdate。それはstderrに属しますtime。観察する:

$ ( time date 1>/tmp/date_1.out 2>&1 ) 2>time.out
$ cat time.out

real    0m0.002s
user    0m0.000s
sys     0m0.000s

time実行出力は、date 1>/tmp/date_1.out 2>&1time出力に適用されたリダイレクトの影響を受けませんdate。これはtime一般的なコマンドではないため可能です。timeつまり、シェルキーワードです。

$ type time
time is a shell keyword

したがって、さまざまなルールに従ってプレイできます。

関連情報