Chinaunix首页 | 论坛 | 博客
  • 博客访问: 611050
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: LINUX

2015-06-17 21:57:54

很多应用程序需要以不同的格式打印日期,设置日期和时间,以及根据日期和时间执行操作,延时通常用于在程序中执行过程中提供一段等待时间,比如每隔五秒钟执行一次见识任务的这类脚本,这需要掌握如何在程序中加入延时;

1.先谈谈时间日期设置

打印时间:
[root@iZ28dr3wqtiZ shell]# date
Wed Jun 17 21:37:11 CST 2015

打印纪元时:纪元时是自标准时间1970年1月1日0时0分0秒起所流失的秒数,化简为纪元时可计算两个时间的差值
[root@iZ28dr3wqtiZ shell]# date +%s
1434548262

将日期转换为纪元时(选项--date用于提供日期串作为输入)
[root@iZ28dr3wqtiZ shell]# date --date "Wed Jun 17 21:45:00 CST 2015" +%s
1434548700

如:检查一组命令所花时间
[root@iZ28dr3wqtiZ shell]# cat time_take.sh 
#!/bin/bash
#检查一组命令所花时间
start=$(date +%s)
ls ./
echo "file list"
end=$(date +%s)
take=$((end - start))
echo "Time Take is:$take seconds"
结果:
[root@iZ28dr3wqtiZ shell]# bash time_take.sh 
sleep.sh  test.sh  time_take.sh
file list
Time Take is:0 seconds

2.延时脚本
延时命令在我的另一篇博客里有讲,这里不讲了,知道延时脚本执行时间用sleep即可

[root@iZ28dr3wqtiZ shell]# cat sleep.sh 
#!/bin/bash
#延时脚本
echo -n Count:
tput sc


count=0
while true;
do
if [ $count -lt 40 ]
then 
let count++
sleep 1
tput rc
tput ed
echo -n $count;
else
exit 0
fi
done
解释一下:变量count初始化为0,随后每循环一次增加1;echo语句打印出count的值;tput    sc存储光标位置,在每次循环中,我们通过恢复之前存储的光标位置,在终端中打印出新的count值;恢复光标位置的命令是tput    rc 而tput    ed清除从当前光标位置到行尾之间的所有内容,是的旧的count值可以被清除并写入新的值,循环内的1秒延时通过sleep命令实现。
结果:

[root@iZ28dr3wqtiZ shell]# bash sleep.sh 
Count:4
.........
[root@iZ28dr3wqtiZ shell]# bash sleep.sh 
Count:40


阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~