Bash计算执行时间

时间:2017-08-20 16:13:15

标签: linux bash shell time timer

我想在bash中编写一个脚本,该脚本将保存到文件执行的时间

我希望输出看起来像这样: 1 minute 2 minute ...

1 个答案:

答案 0 :(得分:0)

要求

您需要安装time(不是内置的shell)。

验证您是否拥有正确的:$ which time

这是预期的输出:

$ which time
/usr/bin/time

解决方案

假设您有一个名为main的函数,其中包含您的主脚本代码

function main() {
  echo "Sleeping .."
  sleep(5)
  echo "This is the first arg: ${1}"
  echo "This is the second arg: ${2}"
}

要对此函数调用进行计时,请执行以下操作(参数参考):

main "HELLO" "WORLD" | $(which time) -o "OUTPUT_FILENAME_FOR_TIME" -f "%e" $(which bash)

解释

我们将 / usr / bin / time 传递给函数调用以计时。我们使用time调用$(which time),因为我们不希望内置shell。之后我们传递-o参数来定义输出文件,然后-f参数用于定义时间格式。在我的示例中,我使用秒。最后,我们传递了我们正在使用的shell,在我们的例子中,我们使用的是bash,所以$(which bash)

  

man time阅读其他格式,当然还有正确使用该程序

     

我总是使用秒,因为它更容易将它们转换为任何东西。

编辑#1

您可以使用GNU工具command,而不是使用time的绝对路径

 $ command time

而不是

 $ $(which time)