Linux Bash计数执行时间
我想在bash中编写一个脚本,将它执行多长时间保存到文件中 我希望输出如下所示:Linux Bash计数执行时间,linux,bash,shell,time,timer,Linux,Bash,Shell,Time,Timer,我想在bash中编写一个脚本,将它执行多长时间保存到文件中 我希望输出如下所示: 1分钟 2分钟 …要求 您需要安装time(而不是shell内置) 要验证您是否拥有正确的密码,请执行以下操作:$which time $ command time 这是预期输出: $ which time /usr/bin/time 解决方案 假设您有一个名为main的函数,其中包含主脚本代码 function main() { echo "Sleeping .." sleep(
1分钟
2分钟
…
要求
您需要安装time
(而不是shell内置)
要验证您是否拥有正确的密码,请执行以下操作:$which time
$ command 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}"
}
要计时此函数调用,请执行以下操作(参数供参考):
解释
我们正在通过管道/usr/bin/time对函数调用进行计时。我们使用$(which time)
调用time
,因为我们不需要内置shell。之后,我们将传递-o
参数来定义输出文件,然后使用-f
参数来定义时间格式。在我的示例中,我使用了秒。最后,我们传递我们正在使用的shell,在我们的例子中我们正在使用bash,因此$(哪个bash)
人工时间
阅读其他格式,当然还有程序的正确使用
我总是使用秒,因为它更容易转换成任何东西
编辑#1
您可以使用GNU工具命令
而不是使用时间的绝对路径
$ command time
而不是
$ $(which time)
目标是添加一些自己的代码,以显示您自己为解决此问题所做的研究工作。您需要更详细地描述您的环境以及您迄今为止所做的工作。您也可以使用Google搜索解决方案,因为这是一项非常简单的任务,只需稍加研究即可完成。此链接将帮助您[可能重复使用命令]时间[您的_命令]“,它将精确计算命令的执行时间使用/usr/bin/time比shell内置有什么好处?@user1934428您可以阅读Hmmm….虽然这篇文章很有趣,但我还是忽略了这一点。的确,这篇文章在一句话中说GNU time,/usr/bin/time通常比内置的更有用,但它没有it’我们没有给出任何解释,它在什么方面更有用。相反,它详细地解释了(而且非常好地解释了),内置的(也称为bash时间)比gnu时间提供了更高的精度。这更像是一个支持bash时间的论点(但不适用于这里的问题,因为OP只需要一分钟的解决方案)@user1934428根据我在
time
命令使用方面的经验:要使用内置time
写入时间日志文件,必须将stdout和stderr重定向到该文件(somecommand&>time.log
)。在这种情况下,您有精度,但如果somecommand
产生任何错误,这将写入您的时间。记录您不希望发生的事情。另一方面,/usr/bin/time
精度较低,但您可以通过参数控制输出,使用可使用-f选项指定的格式字符串格式化输出或者是时间环境变量等等。@user1934428我再次评论(没有留下字符)。注意:不太精确,大约0.0X
seconds,其中X
是一个整数。此外,要将秒转换为分钟,可以使用BASH数学:VAR=$(X-Y))
,bc
命令,或类似于python
的命令。