bash 计算代码执行前后的时间

在 Bash 中可以使用 date 命令记录时间,或者使用内置的 SECONDS 变量来计算脚本或命令执行前后的时间。

以下是两种常用方法:

方法 1:使用 date 命令

date +%s 返回当前时间的时间戳(以秒为单位)。

示例代码:
#!/bin/bash

start_time=$(date +%s)  # 记录开始时间

# 模拟一个需要耗时的任务
sleep 3

end_time=$(date +%s)    # 记录结束时间

# 计算时间差
elapsed=$((end_time - start_time))
echo "Execution time: ${elapsed} seconds"

输出:

Execution time: 3 seconds

 


方法 2:使用内置的 SECONDS 变量

SECONDS 是一个 Bash 内置变量,从脚本启动时开始计时,单位是秒。

示例代码:
ecution time: 3.003 seconds
#!/bin/bash

SECONDS=0  # 重置计时器

# 模拟一个需要耗时的任务
sleep 3

# 输出运行时间
echo "Execution time: ${SECONDS} seconds"

输出:

Execution time: 3 seconds

方法 3:显示更精确的时间(包含毫秒)

使用 date +%s.%N 获取时间戳,%N 表示纳秒。

示例代码:
#!/bin/bash

start_time=$(date +%s.%N)  # 记录开始时间

# 模拟一个需要耗时的任务
sleep 3

end_time=$(date +%s.%N)    # 记录结束时间

# 计算时间差(精确到毫秒)
elapsed=$(echo "$end_time - $start_time" | bc)
echo "Execution time: ${elapsed} seconds"

输出:

Execution time: 3.003 seconds

方法 4:使用 time 命令

如果只想测量某个命令的执行时间,可以使用 time 命令。

示例代码:
time sleep 3

输出:

real    0m3.003s
user    0m0.000s
sys     0m0.002s
  • real: 命令的总执行时间
  • user: CPU 在用户模式下执行的时间
  • sys: CPU 在内核模式下执行的时间

总结:

  • 简单任务:使用 SECONDS 是最方便的。
  • 需要高精度:使用 date +%s.%Nbc
  • 单个命令:使用 time 命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值