繁体   English   中英

如何编写脚本多次运行程序并将时间存储在文件中?

[英]How to write a script to run a program multiple times and store the time in a file?

我试图运行一个脚本来运行我用C编写的程序,这只是一个简单的排序程序,可以将其与UNIX中的内置函数进行比较。 我想将用户时间从sort(unix)和我的sort函数中抽出100次,并将其放在excel,csv文件中以比较算法。

当我手动运行它时,我的函数和sort函数都可以工作,但是我不知道如何编写代码以自动执行此过程100次。

#!/bin/sh
for i in {1..100}
do
     for t in 01
     do
     echo ===Test $t ====
     time sort -n <tests/$t > tests/$t.expected
     time ./useIntList <tests/$t> tests/$t.observed
     done
done
rm tests/*.expected tests/*.obsereved

我使程序运行了100次,但我不知道如何将用户时间放入数组并将其打印到文件中。

time将其输出写入stderr而不是stdout 它也是一个内置的shell,它在定时之后执行命令,包括I / O重定向。 因此,您需要将time命令放在一个块中,然后重定向到该块之外。

您还应该使用#!/bin/bash {1..100}这样的语法是bash扩展名,当您使用#!/bin/sh时,它可能不可用。

#!/bin/sh
for i in {1..100}
do
     for t in 01
     do
     echo ===Test $t ====
     { time sort -n <tests/$t > tests/$t.expected; } 2>tests/$t.time.expected
     { time ./useIntList <tests/$t> tests/$t.observed; } 2>tests/$t.time.observed
     done
done
rm tests/*.expected tests/*.obsereved

*.time.*文件将包含time的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM