我需要检查当前时间,如果不是我应该运行它的一天中的适当时间,则中止脚本。另外,如果其他任何人运行它,它都应该中止。
例如:我需要脚本仅在10 PM到2 AM(4小时窗口)之间启动时才能运行。
目前,我正在执行以下操作。花时间date +%k%M
与硬编码进行比较
#!/bin/sh
currTime=`date +%k%M`
check_time_to_run()
{
tempTime=$1
if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then
echo "Time is between 2 AM and 10 PM. Aborting."
exit 1
else
echo "Time is after 10 PM and before 2 AM. Running normally."
fi
}
check_time_to_run $currentTime
我想知道是否有在相对时间比较任何其他有效的方法sh
还是bash
?
@Eddy不,这不是日期,这是我需要比较的时间。
—
mtk
我认为,以秒为单位会更好:
—
Eddy_Em
currTime=$(date +%s); lower=$(date +%s --date="2:00"); upper=$(date +%s --date="22:00"); if [$currTime -gt $lower -a $currTime -lt $upper]; then
…
为什么不将脚本放入crontab?这样,您可以确保它在特定的时间运行
—
BitsOfNix
date +%s
。