我可以使用以下命令保存并查看 cygwin 控制台输出(stdout 和 stderr),
python command.py 2>&1 | tee -a outFile.txt// Note -a is for appending
因为我有不同的命令,并且执行它们需要不同的时间。我怎样才能保存开始时间
09:00:00AM
file stream file stream file stream file stream
file stream file stream file stream file stream
.
.
.
file stream file stream file stream file stream
09:07:20AM
请注意开始和结束时间戳。如果我能记录差异时间那就太棒了
Total execution time: 00:07:20
是的,我可以在 cygwin 中使用 date 命令获取时间,
$ date -> Tue, Mar 22, 2016 12:00:47 AM
但是我是否必须解析此日期以获取变量中的时间,然后采用 diff 来获取经过的时间?
答案1
下列命令序列我试图在日志文件中获取开始/结束和经过的时间。可能有更好的方法来做到这一点。
date 2>&1 | tee -a outFile.txt && SECONDS=0 && command.py 2>&1 | tee -a outFile.txt && date 2>&1 | tee -a outFile.txt && duration=$SECONDS echo "Total Execution Time: $(($duration / 60)) m $(($duration % 60)) s" 2>&1 | tee -a outFile.txt
它只是获取开始日期并附加到文件,
date 2>&1 | tee -a outFile.txt
然后执行命令并附加到文件,
&& SECONDS=0 && command.py 2>&1 | tee -a outFile.txt
然后获取结束日期并附加到文件。
&& date 2>&1 | tee -a outFile.txt
最后计算经过的时间并附加到文件
&& duration=$SECONDS echo "Total Execution Time: $(($duration / 60)) m $(($duration % 60)) s" 2>&1 | tee -a outFile.txt
以下是日志文件的输出,
Tue, Mar 22, 2016 4:01:18 PM
file stream file stream file stream file stream
file stream file stream file stream file stream
.
.
.
file stream file stream file stream file stream
Tue, Mar 22, 2016 4:01:23 PM
Total Execution Time: 0 m 7 s