将时间和程序输出存储到单独的变量中

时间:2012-04-22 12:54:43

标签: linux bash unix sh

使用bash,如何在一个变量中存储程序执行所需的时间,以及在另一个变量中存储程序的输出?我知道time将其输出发送到stdout;我最接近的是:

exec 3>&1 4>&2
time_output=$( { time echo hello world 1>&3 2>&4; } 2>&1 )

但是“hello world”会打印到终端。如何将“hello world”捕获到另一个变量?

我也试过了:

prog_output=$(time_output=$( { time echo hello world 1>&3 2>&4; } 2>&1 ) )

但这不起作用。 prog_output不包含任何内容,并在终端上打印“hello world”。

1 个答案:

答案 0 :(得分:1)

这对你有用吗?

prog_output=`( time ls ) 2> time_output`
time_output=`cat time_output`