输出 time 命令的结果到文件中
2015-04-23 11:35
190 查看
由于输出 time 命令的结果到文件时使用的错误的方式,所以将其记录下来。环境是bash。
上面的例子是重定向结果到logfile,下面的例子是通过tee把标准输出输出到文件。
但是只有time的输出没有被记录到文件中。
这是因为time的结果是通过标准错误输出的。
所以不把标准错误输出重定向到文件中是不行的。
另外最新的bash不仅支持>&也支持&>。
也可以用{;} 指定一组命令。
但是和内置的bash不同的是,不加括号也可以将所有的输出重定向到文件。当然加括号也没问题。
详细的情况请使用man time,bash的time的话使用help time。
目标
将运行的a.out程序的输出和其所花的时间重定向到日志文件中无效的例子1
time ./a.out > logfile time ./a.out | tee logfile
上面的例子是重定向结果到logfile,下面的例子是通过tee把标准输出输出到文件。
但是只有time的输出没有被记录到文件中。
这是因为time的结果是通过标准错误输出的。
所以不把标准错误输出重定向到文件中是不行的。
无效的例子2
把错误输出也重定向到文件。time ./a.out >& logfile time ./a.out > logfile 2>&1 time ./a.out 2>&1 | tee logfile然而,这也是没有用的。
./a.out >& logfile ./a.out > logfile 2>&1 ./a.out 2>&1 | tee logfile因为这只是意味着把a.out的错误和标准输出重定向到logfile。
OK的例子
我们是想把 time ./a.out 的结果输出到logfile,所以:(time ./a.out) >& logfile (time ./a.out) > logfile 2&>1 (time ./a.out) 2>&1 | tee logfile用括号括起来。这样就搞定了。换句话说,你是在一个子shell中运行。
另外最新的bash不仅支持>&也支持&>。
也可以用{;} 指定一组命令。
{ time ./a.out ; } >& logfile { time ./a.out ; } > logfile 2&1 { time ./a.out ; } 2>&1 | tee logfile{ 后一定要加空格,如果没有的话,会报错 -bash: syntax error near unexpected token `}’ 。后面的冒号;也不要忘了。
/usr/bin/time
顺便说一下,bash内置的命令time和GNU的time命令是不一样的。通过追加完整的路径/usr/bin/time 可以执行GNU命令。但是和内置的bash不同的是,不加括号也可以将所有的输出重定向到文件。当然加括号也没问题。
/usr/bin/time ./a.out >& logfile /usr/bin/time ./a.out > logfile 2>&1 /usr/bin/time ./a.out 2>&1 | tee logfile而且有输出到文件的选项-o。
/usr/bin/time -o logfile ./a.out但是这只会把time的结果写到文件。使用追加选项-a就可以了。
/usr/bin/time -a -o logfile ./a.out > logfileGNU的time命令跟bash的time比的话,数据更详细,也能指定多种输出格式。
详细的情况请使用man time,bash的time的话使用help time。
相关文章推荐
- 输出 time 命令的结果到文件中
- 输出 time 命令的结果到文件中
- Linux命令输出结果到文件:使用>>重定向符号
- 将windows命令行的结果保存到文件 (cmd命令的重定向输出)
- Linux 脚本命令结果输出到文件
- 关于dd命令输出结果无法重定向到文件的问题
- time 命令 - 输出到文件 - -v参数
- 将windows命令行的结果保存到文件 (cmd命令的重定向输出)
- 在android中如何编译连接 .c 的可执行文件 Android点滴(1) -- 执行Linux命令并且获得输出的结果
- 将windows命令行的结果保存到文件 (cmd命令的重定向输出)
- time命令输出结果的意义
- 如何将linux 命令的执行结果在屏幕输出的同时保存到文件
- python 调用系统命令,并将输出重定向,输出其结果至文件或者字符串变量
- 将top命令查看指定程序的结果输出到文件
- 使用vim在文件中插入命令执行的输出结果
- 使用vim在文件中插入命令执行的输出结果
- shell命令:以空格为分隔符截取文件每行的第一个字符串,并用sort排序,再去掉相同的字符串,将结果输出到另一个文件
- 关于dd命令输出结果无法重定向到文件的问题
- 把命令结果输出到以时间为文件名的文件中
- 将linux 命令的执行结果在屏幕输出的同时保存到文件