好的,这就是我想要做的事情:
time
)到目前为止我的代码是
for filepath in $files
do
(
output=$(time $filepath &>1)
echo ${output}
)
done
但是,每个命令仍会将其时间输出到屏幕,$output
包含命令的输出。
任何想法如何获得它们?
答案 0 :(得分:2)
time
选项,则 stderr
将其输出写入<file>
或-o <file>
(受GNU和FreeBSD时间支持)。所以我认为你不能避免使用(临时)文件来实现目标。您可以使用mktemp
命令在shell中安全地创建临时文件。
答案 1 :(得分:1)
你必须抓住stdin和stdout。为此,基于Is there a way to redirect time output to file in Linux中的解决方案,我会说:
{ time command ; } 2>&1
^^^^
redirect stderr to stdin
所以你举个例子:
$ var=$({ time echo 1 ; } 2>&1 )
$ echo "$var"
1
real 0m0.000s
user 0m0.000s
sys 0m0.000s