Linux 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(

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

我希望输出如下所示:
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
的命令。