bashレコードを時間単位で読み取り、結果を変数に入れたいです。残念ながら、time
(シェルキーワードである)結果はに印刷されstderr
、明らかにstderr
シェルキーワードからのリダイレクトは通常のコマンド出力のリダイレクトとは異なります。つまり、
foo=$(time history -r 2>&1)
動作しません(foo
変数が空で、出力が端末に印刷されます)。time
キーワードの出力をキャプチャする方法は?
注:シェルは組み込みのため、外部コマンド(例:)history
は使用できません。 bashではキーワードを使用する必要があります。time
/usr/bin/time
time
ベストアンサー1
次の構文を使用できます。
foo=$((time history -r) 2>&1)
コマンドをaに入れて次に()
リダイレクトします。stderr
stdout
例:
$ foo=$((time history -r) 2>&1)
$ echo $foo
real 0m0.001s user 0m0.000s sys 0m0.000s
$