检查是否使用时间戳bash脚本

问题描述:

说我有一堆时间戳检查是否使用时间戳bash脚本

当我遍历这些时间戳,

01:23:00 
12:34:14 
17:09:12 
... 

我想包括:00至08:00仅时间戳是在一定的范围内: 00和17:00:00

请建议

+0

@Andrei - 假定这些是几小时:分钟:秒 - 是那个时间窗口固定,例如你可能需要一个跨越午夜的时间窗口吗? – 2010-05-25 13:55:05

+0

[比较时间使用日期命令]可能的重复(http://*.com/questions/2899110/compare-time-using-date-command) – Cascabel 2010-05-25 13:55:42

+0

这和你以前的问题的唯一区别是,现在你说你重新循环一些输入。如果你需要帮助循环,询问一下。如果您需要更多日期/时间比较帮助,请编辑或评论您之前的问题。 – Cascabel 2010-05-25 13:56:45

你可以做一个简单的字符串比较:

if [[ "$timestamp" > "08:00:00" && "$timestamp" < "17:00:00" ]] 

如果你希望在你的范围的两端,你要测试的是分别,因为击不具有>=<=运营商字符串:

start="08:00:00" 
end="17:00:00" 
if [[ "$timestamp" == "$start" || 
     "$timestamp" > "$start" && "$timestamp" < "$end" || 
            "$timestamp" == "$end" ]] 
+0

我不知道我们可以比较像这样的时间戳... +1您看到的任何可能的陷阱? – 2013-07-10 18:02:33

+2

@JS웃:我演示的例子使用了词法比较,OP的例子都是词法排序的,所以没有我在这些条件下看不到任何陷阱。你甚至可以用完整的[ISO 8601](http://en.wikipedia.org/wiki/ISO_8601)(或类似的)日期来完成。如果您使用的是Unix纪元时间戳,只需使用数字比较'if((epoch_1> = epoch_2))' – 2013-07-11 00:01:10

+0

谢谢@DennisWilliamson – 2013-07-11 01:23:56