gpt4 book ai didi

bash - 用于测量操作完成所需秒数的简单计时器

转载 作者:行者123 更新时间:2023-11-29 08:55:46 24 4
gpt4 key购买 nike

我每晚运行自己的脚本将数据库转储到文件中。
我想计算转储每个数据库所需的时间(以秒为单位),所以我试图编写一些函数来帮助我实现它,但我遇到了问题。

我不是 bash 脚本专家,所以如果我做错了,请直接说出来,最好提出替代方案。

这是脚本:

#!/bin/bash

declare -i time_start

function get_timestamp {
declare -i time_curr=`date -j -f "%a %b %d %T %Z %Y" "\`date\`" "+%s"`
echo "get_timestamp:" $time_curr
return $time_curr
}

function timer_start {
get_timestamp
time_start=$?
echo "timer_start:" $time_start
}

function timer_stop {
get_timestamp
declare -i time_curr=$?
echo "timer_stop:" $time_curr
declare -i time_diff=$time_curr-$time_start

return $time_diff
}

timer_start
sleep 3
timer_stop
echo $?

代码应该是不言自明的。 echo 命令仅用于调试。
我希望输出是这样的:

$ bash timer.sh
get_timestamp: 1285945972
timer_start: 1285945972
get_timestamp: 1285945975
timer_stop: 1285945975
3

不幸的是,现在情况并非如此。我得到的是:

$ bash timer.sh
get_timestamp: 1285945972
timer_start: 116
get_timestamp: 1285945975
timer_stop: 119
3

正如你所看到的,local var time_curr 从命令中获取的值是一个有效的时间戳,但是返回这个值会导致它被更改为 0 到 255 之间的整数。

有人可以向我解释为什么会这样吗?

附言。这显然只是我的计时器测试脚本,没有任何其他逻辑。


更新明确地说,我希望它成为与 this one 非常相似的 bash 脚本的一部分。 ,我想在其中测量每个循环周期。

当然,除非我能用 time 完成,那么请提出一个解决方案。

最佳答案

您不需要做所有这些。只需运行 time <yourscript>在外壳中。

关于bash - 用于测量操作完成所需秒数的简单计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3840558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com