当前位置: > shell编程 >

linux脚本shell实现一天中当前时间和设置的时间段比较

时间:2019-05-17 13:49来源:linux.it.net.cn 作者:IT
一.编写shell脚本,获取当前时间和设定的时间段进行比较。时间需要变成时间戳(单位秒,1970年至今),然后对当前时间戳和设定的时间戳进行比较。
 
二.示例。脚本中写循环,每5秒检测一次,在每天的23:59:54至23:59:59时间段备份log,备份的log文件名含日期时间。
 
#!/bin/sh
while true 
do
curtime=`date "+%H:%M:%S"`
curStamp=`date -d "$curtime" +%s` 
limtime="23:59:54"
limStamp=`date -d "$limtime" +%s` 
limtimeup="23:59:59"
limStampup=`date -d "$limtimeup" +%s` 
 
if [ $curStamp -ge $limStamp -a $curStamp -lt $limStampup ]; then
echo limtime = $limtime
echo limtimeup = $limtimeup
echo curtime = $curtime
mv /mnt/sata/0/0/test.log /mnt/sata/0/0/test"`date +%Y%m%d_%H%M%S`".log
fi
 
sleep 5    
 
done  
注意:在if语句判断“[  ]”中注意前后的空格,调用变量使用“$”。
 
三.附注:
 
参考“Linux Shell日期比较,数值比较和字符串比较及相关 - helloxiaozhe的博客 - CSDN博客  https://blog.csdn.net/helloxiaozhe/article/details/81280095”
 
脚本中各运算符说明::
 
1.只适用于数值的比较
 
该类型操作会把两边变量当成整型进行加减运算,字符串abcd按整型运算无法进行,所以此类型不能用于字符串比较
 
参数
 
说明
 
-eq
 
等于则为真
 
-ne
 
不等于则为真
 
-gt
 
大于则为真
 
-ge
 
大于等于则为真
 
-lt
 
小于则为真
 
-le
 
小于等于则为真
 
2.适用于字符串的比较(也可用于数值比较)
 
参数
 
说明
 
=
 
相等则为真
 
!=
 
不相等则为真
 
3.字符串测试运算
 
参数
 
说明
 
-z 字符串
 
字符串的长度为零则为真
 
-n 字符串
 
字符串的长度不为零则为真
 
4.文件测试运算
 
参数
 
说明
 
-e 文件名
 
如果文件存在则为真
 
-r 文件名
 
如果文件存在且可读则为真
 
-w 文件名
 
如果文件存在且可写则为真
 
-x 文件名
 
如果文件存在且可执行则为真
 
-s 文件名
 
如果文件存在且至少有一个字符则为真,即文件大小非0时为真
 
-d 文件名
 
如果文件存在且为目录则为真
 
-f 文件名
 
如果文件存在且为普通文件则为真
 
-c 文件名
 
如果文件存在且为字符型特殊文件则为真
 
-b 文件名
 
如果文件存在且为块特殊文件则为真
 
 
 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容