当前位置: 首页 > 知识库问答 >
问题:

Bash命令时间输出到。文本

令狐宏浚
2023-03-14

你好,我有一个bash脚本,我打算测量时间流逝,CPU%和内存使用的脚本download_test.sh与输出被放入一个. txt文件与所需的输出,如:

Elapsed time: 1263.75s
Memory usage: 62916 KB
CPU usage: 0%

执行此操作的脚本如下所示:

#!/bin/bash
echo 'RESULTS' >> log.txt
{ /usr/bin/time -f 'Elapsed time: %es\nMemory usage: %M KB\nCPU usage: %P' bash download_test.sh  1 ; }  2>> log.txt

然而,下载终端进度也被定向到. txt文件,即. txt文件。

RESULTS

Downloading:  95%|#########5| 827M/870M [00:00<?, ?B/s]
Downloading:  95%|#########5| 828M/870M [00:00<00:11, 3.68MB/s]
...
Elapsed time: 14.67s
Memory usage: 62592 KB
CPU usage: 0%

我不熟悉使用stderr和stdout,所以我是否误解了它们,我将如何解决这个问题?

共有1个答案

微生弘
2023-03-14

我认为这不是标准。您可以使用下面的命令打印所需的行。

awk'/过去/,/CPU/'

试试这个

#!/bin/bash
echo 'RESULTS' >> log.txt
{ /usr/bin/time -f 'Elapsed time: %es\nMemory usage: %M KB\nCPU usage: %P' bash download_test.sh  1 ; } | awk '/Elapsed/,/CPU/' 2>> log.txt

 类似资料:
  • 问题内容: 我必须找到具有选定权限的文件,并列出它们及其编号。因此,我想将命令的结果传递给shell和下一个命令,该输出我想存储在变量中,以便以后可以很好地显示。我想吃点东西 但部分无效。请帮忙。 编辑 我知道我可以将命令的整个输出放到像这样的变量中 但是然后我只需要的结果。我如何从该变量中获得该数字?是否可以按相反的顺序显示它,先显示编号,然后显示列表? 问题答案: 复制到TTY(不是标准输出!

  • 本文向大家介绍shell(bash)下“time” 命令的输出详解,包括了shell(bash)下“time” 命令的输出详解的使用技巧和注意事项,需要的朋友参考一下 前言 相信大家都知道bash下time是一个很有用的命令,它可以为一段脚本或一个程序的执行计时,这通常在粗略比较程序执行效率的时候很方便。但是你会发现,time命令输出的时间文字不能被简单地重定向,例如重定向至一个文本文件,只能显示

  • 我想让我的Bash脚本对最终用户来说更加优雅。当Bash执行命令时,如何隐藏输出? 例如,当Bash执行时 以下内容将显示给执行Bash的用户: 现在我想对用户隐藏这一点,而是显示: 我怎样才能完成这项任务?我一定会帮助使脚本更加用户友好。如果发生错误,则应向用户显示。 我想知道如何显示相同的消息,而一组命令正在执行。

  • 问题内容: 我想做这个: 运行命令 捕获输出 选择一条线 选择该行的一列 举例来说,假设我想从中获取命令名称(请注意,这只是一个例子,我并不建议这是从进程ID中获取命令名称的最简单方法- 我的真正问题是另一个我无法控制其输出格式的命令)。 如果我跑步,我会得到: 现在我做的,并得到 下一步:。输出为: 问题是将输出剪切单个空格,并在第二和第三列之间添加一些空格以保持表的相似性,因此选择一个空字符串

  • 问题内容: 我在修复此bash脚本中的错误时遇到问题,我真的不知道我做错了什么,感谢您的任何帮助,谢谢 问题答案: 在 之前和 之后 添加一个空格。

  • 问题内容: 我正在尝试将命令输出重定向到变量: 然后阅读: 运行它时,输出如下: 但是变量保持空白。对于其他命令,我已经尝试过相同的方法,并且一切正常。 这会将文件列表写入变量,以便以后可以读取。我应该怎么做才能使其正常工作? 问题答案: 也许输出去了,不是吗? 尝试这个: