【发布时间】:2014-03-30 04:20:49
【问题描述】:
我对 Bash 脚本比较陌生,最后想到了一些可以很好地介绍它的东西。我有一组我正在尝试计时的排序程序。像大多数测试一样,获得大样本量是件好事,但很难始终如一地做到这一点。我认为使用 Bash 脚本自动化该过程将是一个很好的方法,但我并没有做太多 Bash。
排序程序是用 C++ 编写的,并输出它们对从文件中读取的 10000 个整数值的数组进行排序所需的时间。我使用几种不同的方法对数组进行排序,包括冒泡排序、快速排序和并行化(Boost 线程)快速排序。在它们的执行结束时,会向控制台输出一个时间并停止执行。我想在 Bash 脚本中做的是......
for 1 to 100:
./quicksortpar --this is the command to start the program
take time reading from output, place in collection
--when that's done
for 1 to 100 in the collection:
add each item in the collection to a running total
--when that's done
echo running total/ 100
我将如何在 Bash 中完成此任务?有可能吗?
编辑:
这是我在 Tony D 的指导下获得的当前 Zsh 脚本:
【问题讨论】:
-
请注意,Bash 不进行浮点运算。您将需要使用其他一些工具:
awk、bc、perl或python,或者……来进行算术运算。我建议简单地将排序程序的原始输出记录到一个文件中(这样你就有一个永久的记录——至少在你删除文件之前),然后你可以分析并重新分析你的内心内容。并用于比较您一周前使用的内容和今天使用的内容等。确保输出包括哪种排序算法、数据集是如何生成/塑造的,以及数据集有多大。