Archive for the ‘shell’ Category.

date +%k注意输出的空格

最近一直在搞备份脚本,每次测试都通过,没有任何问题,结果把它放在crontab里面让它凌晨2点调度,却怎么样也运行不起来,最后发现是date +%k输出跟想象中的不一样。凌晨2点date +%k输出为 2(空格2)。

对应的脚本段为:
CURRENT_HOUR=date "+%k"
if [ “X${CURRENT_HOUR}” == “X${WHOLE_BACKUP_HOUR}” ];then
备份
fi
WHOLE_BACKUP_HOUR是一个整数值。
白天测试的时候,总是不会出错,但是凌晨调度执行就一直调度不成功。
最后发现是date +%k返回的是当前的小时值。如果是凌晨2点,那么返回的是 2(空格2)和整数值2比较肯定是对不上的。如果是10点以后,那么都不会出错。唉,不细心的后果啊

may your success.