译至:http://unicus.jp/skmk/archives/338

由于输出 time 命令的结果到文件时使用的错误的方式,所以将其记录下来。

环境是bash。

目标

将运行的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 > logfile

GNU的time命令跟bash的time比的话,数据更详细,也能指定多种输出格式。

详细的情况请使用man time,bash的time的话使用help time。

输出 time 命令的结果到文件中的更多相关文章

  1. Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件

    Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容. 但是用这个脚本的同 ...

  2. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符

    1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...

  3. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  4. shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

    shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...

  5. java 写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中

    package com.beiwo.homework; import java.io.File; import java.io.FileOutputStream; import java.io.IOE ...

  6. linux grep命令(linux在文件中搜索内容)

    转自:https://www.cnblogs.com/end/archive/2012/02/21/2360965.html linux grep命令 1.作用Linux系统中grep命令是一种强大的 ...

  7. [Shell学习笔记] read命令从键盘或文件中获取标准输入(转载)

    转自:http://www.1987.name/151.html read命令是用于从终端或者文件中读取输入的内部命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果没有 ...

  8. 将输出语句打印至tomcat日志文件中

    tomcat-9.0.0 将程序中            System.out.println("------------这是输出语句System.out.println()-------- ...

  9. [Linux] sed命令使用之在文件中快速删除/增加指定行

    1.删除文档的第一行 sed -i '1d' <file> 2.删除文档的最后一行sed -i '$d' <file> 3.在文档指定行中增加一行例如文档如下:echo &qu ...

随机推荐

  1. 巧用 iLocker 清理恶意程序

    iLocker 作为 iGuard 网页防篡改系统的文件驱动过滤模块所衍生出来的独立应用,是一个文件防护工具,可以在文件系统驱动层检查文件操作,根据规则对文件操作进行放行或拦截,可以灵活细致地对文件访 ...

  2. 3. servlet 和 springmvc框架关系

    在springmvc上我们会编写很多相关的配置 编写springmvc.xml 配置映射器 配置 处理适配器 ... web.xml 配置前端控制器 (DispatcherServlet) 官网: h ...

  3. GO学习-(21) Go语言基础之Go性能调优

    Go性能调优 在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况. Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling ...

  4. 用OpenCV4实现图像的超分别率

    用OpenCV4实现图像的超分别率 本实验原文链接:· https://arxiv.org/pdf/1807.06779.pdf 原文摘要 单图像超分辨率(SISR)的主要挑战是如何恢复微小纹理等高频 ...

  5. MindInsight张量可视设计介绍

    MindInsight张量可视设计介绍 特性背景 张量可视,能够帮助用户直观查看训练过程中的Tensor值,既支持以直方图的形式呈现Tensor的变化趋势,也支持查看某次step的具体Tensor值. ...

  6. 怎样训练YOLOv3

    怎样训练YOLOv3 Training YOLOv3 : Deep Learning based Custom Object Detector 本文将在一些公开的雪人图片和视频上分享训练过程.有助于训 ...

  7. BeetleX之Vue ElementUI生成工具

    BeetleX.WebFamily在新版本的功能中引入了一个全新的功能,通过这一功能可以大大节省UI的开发工作量.组件集成了一个图形化的UI编辑器,可以连接数据库对数据表或查询快速度生成编辑和数据查询 ...

  8. 编译原理-翻译程序(Translator)

    分为编译程序(compiler)和解释程序(interpreter) 编译程序:把源程序(高级语言编写)转换成目标程序(汇编语言或机器语言编写). 解释程序:对源程序边翻译边执行. 编译型语言 优点: ...

  9. RabbitMQ由浅入深入门全总结(二)

    写在最前面 距离上一次发文章已经很久了,其实这段时间一直也没有停笔,只不过在忙着找工作还有学校结课的事情,重新弄了一下博客,后面也会陆陆续续会把文章最近更新出来~ 这篇文章有点长,就分了两篇 PS:那 ...

  10. 【题解】Grape luogu1156改 dp

    考试时被数据坑了 题目 原题 传送门 题目描述: 众所周知的是oyyf 沉迷葡萄,今天的oyyf为了葡萄溜到了He 大佬家的葡萄园偷葡萄,可惜的是还没偷到葡萄He 大佬就来葡萄园了,吓的oyyf 直接 ...