今天有个需求,要在hp unix 上用shell 取 5分钟前的时间。
找了度娘,古哥 问了老半天 都没我想要的答案。
1.本来想用 linux 的 date -d 来解决,没想到 unix上没有这个 -d 选项。
2.用date +%s-300|bc ,得到5分钟前的时间毫秒数,但是在毫秒转 年月日 上,不知道怎么转了。
3. 又想到用awk,来实现,发现比较麻烦,又想到gawk 里有自带的时间函数:system() ,mktime , strtime 就可以解决,可是服务器上只有awk,没有gawk.
各种无奈中。。。。。
折腾老半天,在一位网友的热心帮助下,总算解决了,现贴出来,供大家参考
#得到年月日 时分秒
ymdhmis=`perl -e "print sprintf '%04d-%02d-%02d %02d:%02d:%02d',(localtime(time()-300))[5]+1900,(localtime(time()-300))[4]+1,(localtime(time()-300))[3],(localtime(time()-300))[2],(localtime(time()-300))[1],(localtime(time()-300))[0]"`
echo $ymdhmis
#得到年月日
ymd=`perl -e "print sprintf '%04d-%02d-%02d',(localtime(time()-300))[5]+1900,(localtime(time()-300))[4]+1,(localtime(time()-300))[3]"`
echo $ymd
'%04d-%02d-%02d %02d:%02d:%02d' 这是按格式输出 %04d 代表4位 年 ,%02d代表2位
(localtime(time()-300))[5]+1900 当前时间减300秒,也就是前5分钟,后面的+1900,是说时间是从1900年开始算。
(localtime(time()-300))[4]+1 月份从1开始
天,小时,分,秒,依次类推。
……^——*
HP UNIX shell得到5分钟前的时间
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/6d8155d0d39ab98908453386af0d8cb5.html