コマンドの複数行出力のコマンドの置き換え?

コマンドの複数行出力のコマンドの置き換え?

次のコマンド置換操作を実行するにはどうすればよいですか?

$ time

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

$ oldtime="$(time)"
bash: command substitution: line 23: syntax error near unexpected token `)'
bash: command substitution: line 23: `time)"'

1行の出力が動作するため、コマンド出力に複数行があるため動作しないようです。

$ oldtime="$(echo hello)"
$ echo $oldtime
hello

ベストアンサー1

timestdoutには何も記録されていないので、何をキャプチャしたいのかわかりません。

$ time > tmpfile

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

そして、あなたは実際に何も「時間」を測定しません。

oldtime="$(time echo)"

エラーは発生しませんが、まだ時間を標準出力に出力します。

次のようなことをしたいかもしれません。

$ oldtime="$( { time ; } 2>&1 )"

おすすめ記事