将time命令的输出保存到日志文件中

时间:2013-03-22 20:32:33

标签: linux shell logging

我有一个脚本hex.bat,它有:

#!/bin/bash
HEX_ROOT=.
HEX_COLOURS=./data
HEX_PDB=.
HEX_MACROS=.
HEX_CACHE=./data

time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log

除时间外,所有输出都转到job.log。我想在jog.log中保存执行此脚本的持续时间。有没有人有任何线索?

提前致谢。

2 个答案:

答案 0 :(得分:2)

time将其输出写入标准错误,而不是标准输出,以便将报告放在不同的输出流中。例如,想要将输出写入文件的程序计时,而不将时间输出放入日志中,这是很常见的。

如果您确实希望时间输出进入日志,您有几个选择:

  1. 使用-o的{​​{1}}和-a选项将time的输出写入日志文件。您的time实施可能有也可能没有这些选项。

  2. 重定向标准错误:timetime .... 2>> job.log。前者写入同一个日志文件(通过追加);后者在标准输出的任何地方发送标准错误输出。请注意,两者都会影响2>&1以及time本身运行的程序。

答案 1 :(得分:1)

我使用了括号

#!/bin/bash
HEX_ROOT=.
HEX_COLOURS=./data
HEX_PDB=.
HEX_MACROS=.
HEX_CACHE=./data

(time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log) &> job.log