我想使用shell脚本读取文件,这里想要计算读取文件所需的时间。我创建了下面的方法来获取文件读取开始和结束时的毫秒时间,我将计算时间差,但它不是添加小时+分钟+秒并向我显示所需的数字输入。
方法
getCurrentTimeInMili()
{
hourTime=$(($(date +%H)*3600))
minuteTime=$(($(date +%m)*60))
secondTime=$(date +%S)
timeInMili= $(($hourTime + $minuteTime + $secondTime));
return timeInMili
}
错误 ./testshell.sh:line 17:return:timeInMili:需要数字参数
答案 0 :(得分:3)
省略timeInMili=
和$
timeInMili= $(($hourTime + $minuteTime + $secondTime));
^
This to
timeInMili=$(($hourTime + $minuteTime + $secondTime));
答案 1 :(得分:1)
多次调用date
意味着它们的返回值可能彼此有点不同步 - 如果我们在第二个边界之前调用它可能会很糟糕。更好的方法是只调用一次日期并检索所需的所有信息,如下所示:
getCurrentTimeInMili() {
date +'%H 3600 * %M 60 * + %S + 1000 * %N 1000000 / + p' | dc
}
startTime=$(getCurrentTimeInMili)
sleep 5
endTime=$(getCurrentTimeInMili)
如果你不需要这么高的准确度,你可以简单地使用time
内置,如:
time sleep 5