Bash日期减法+%H:%M:%S



我在网上找遍了,似乎找不到任何能解决我想做的事情的东西。我在Unbuntu VM上使用Bash。我创建了以下脚本

start_code=$(date +%H:%M:%S)
end_code=$(date +%H:%M:%S)
echo $start_code
for i in {1..1000};
do echo $RANDOM >> filename.txt;
done
echo $end_code

代码工作得很好,但有任何方法,我可以从end_code减去变量start_code ??

我已经尝试了很多不同的方法一个是total_code=$(($start_code - $end_code))但我得到错误或没有返回与我所尝试的一切。因为我是新来巴斯的我甚至不确定我能不能做到。如有任何帮助,我将不胜感激。

有更好的方法来计算时间损耗。你可以这样做减法:

$ cat a.sh
#!/bin/sh
foo() {
# This function does stuff
sleep ${1-2}
}
start=$(date +%s)
foo 3
end=$(date +%s)
echo "time lapsed: $((end - start))"
time foo 4
$ ./a.sh
time lapsed: 3
real    0m4.006s
user    0m0.001s
sys     0m0.001s

在上面,我们首先在调用函数foo之前存储一个时间戳,该函数只休眠3秒。然后我们计算一个新的时间戳并相减。然后我们使用time内置做同样的事情,并让函数休眠4秒。

最新更新