我有一个文件,其中包含一组时间戳的格式H:M:S.MS
,我可以读取并打印所有保存的时间戳,但是当我做一些像Subtract这样的算术运算时(说Timestamp2 - Timestamp1
)它没有给我答案,我没有经验使用bash脚本编程.
任何建议,建议将不胜感激.
这是我的问题的屏幕截图.
这是一个例子:
Start Time = 17:53:01.166721 End Time = 17:53:01.369787
预期结果End Time - Start Time
是0:00:0.203066
或0.203066
.
如果要使用简单的命令行工具处理日期,则需要将时间戳转换为易于处理的格式,如基于纪元的格式.
您可以使用date
命令执行此操作,您可以将其包装在如下函数中:
timestamp() { date '+%s%N' --date="$1" } # timestamp "12:20:45.12345" ==> 1485105645123450000
然后你可以直接减去它们:
echo $(( $(timestamp "${Stime[$i]}") - $(timestamp "${Rtime[$i]}") ))
请注意,由于您没有跟踪当天但仅记录时间,因此您将遇到错误,例如,开始时间是23:59:59,结束时间是00:00:01.