我们有一台服务器用于运行我们的扩展程序(适用于Chrome和Firefox)的Selenium测试。我们每2小时进行一次Selenium测试。我想在14:00之后比14:00之前进行不同的测试。我有这个变量:
start_hour=`TZ='Asia/Tel_Aviv' date +"%H"`
我知道如何将它与特定时间进行比较,例如08:00 AM(它是一个字符串):
if [ "$start_hour" = "08" ]; then
...
fi
但是如何检查此变量是否显示在14:00(包括14:00)或14:00之前的一小时?我可以比较bash中的字符串以及如何?我只想检查$start_hour
是否> =" 14"或不是?
如果我想在08:00 AM之前或之前检查,答案会有所不同吗?
答案 0 :(得分:4)
要执行大于或小于比较,test
操作-gt
,-le
,-ge
和-le
存在。
start_hour=$(TZ='Asia/Tel_Aviv' date '+%k')
[ "$start_hour" -ge 8 ]
请注意使用%k
vs %H
和8
vs 08
- 前导0可以防止您的号码被解释为十进制。
同样,在本机bash语法中,对于数字比较:
start_hour=$(TZ='Asia/Tel_Aviv' date '+%k')
(( start_hour >= 8 ))
如果您的shell是bash,并且不是 / bin / sh,并且您确实需要进行ASCII排序字符串比较,则可以在里面使用>
和<
[[ ]]
:
start_hour=$(TZ='Asia/Tel_Aviv' date '+%H')
[[ $start_hour > 08 || $start_hour = 08 ]]