You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash中如何对date +%H:%M:%S格式的时间做减法求差值

错误原因

你使用date +%H:%M:%S获取的是带冒号的时间字符串(格式示例:15:23:47),不属于可直接参与算术运算的整数类型,因此直接做减法会报错。

秒级计时实现(最简单方案)

使用date +%s获取Unix时间戳(自1970年1月1日0点的总秒数,纯整数),可直接做差值计算:

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

# 计算耗时
total_code=$(( end_code - start_code ))
echo "运行总耗时:${total_code} 秒"

高精度计时(支持毫秒/微秒级)

如果需要更细粒度的耗时统计,可结合纳秒时间戳和bc工具做小数运算:

# %s是总秒数,%N是当前秒的纳秒数
start_code=$(date +%s.%N)
for i in {1..1000};
do 
  echo $RANDOM >> filename.txt;
done
end_code=$(date +%s.%N)

# scale=3表示保留3位小数,即毫秒级精度,Ubuntu默认自带bc工具
total_code=$(echo "scale=3; $end_code - $start_code" | bc)
echo "运行总耗时:${total_code} 秒"

可选简化方案

如果只是临时测试脚本耗时,不需要在脚本内输出耗时,可直接调用内置time命令运行脚本:

time bash your_script.sh

运行后会自动输出三类耗时:

  • real:脚本实际运行的挂钟时间
  • user:CPU在用户态执行脚本的时间
  • sys:CPU在内核态执行脚本的时间

内容的提问来源于stack exchange,提问作者Mr.Mongo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:06:02