很多应用程序需要以不同的格式打印日期,设置日期和时间,以及根据日期和时间执行操作,延时通常用于在程序中执行过程中提供一段等待时间,比如每隔五秒钟执行一次见识任务的这类脚本,这需要掌握如何在程序中加入延时;
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
阅读(1076) | 评论(0) | 转发(0) |