shell学习整理(8)-获取、设置日期和延时

来源:互联网 发布:设计数据库的软件 编辑:程序博客网 时间:2024/06/03 14:26
用不同格式打印日期/时间,设置日期和时间,根据日期和时间执行操作,延时操作等。


1. 打印正常日期
$ date
2017年11月15日 18:06:09


2. 打印纪元时间(在类Unix系统中,日期被存储成一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒 起所流逝的秒数。这种计时方式称为纪元时或Unix时间)
$ date +%s
1510740380


3.我们可以从给定格式的日期串中得出对应的纪年时。在输入时有多种日期格式可供选择。如果要从系统日志中或者其他标准应用程序生成的输出中获取日期,那就完全不用烦心日期串格式的问题。
$ date --date "Thu Nov 18 08:07:21 IST 2010" +%s
1290047841


4. 用格式串结合 + 作为 date 命令的参数,可以按照你的选择打印出对应格式的日期。
$ date "+%d %B %Y"
15 十一月 2017


$ date "+%Y %B %d"
2017 十一月 15


5. 设置日期和时间(date -s " 格式化的日期字符串")
$ date -s "16 Nov 2017 01:01:01"
2017年11月16日  1:01:01


6. 有时候,我们需要检查一组命令所花费的时间,可以使用以下代码
#!/bin/bash
#文件名: time_take.sh
start=$(date +%s)      //读取开始时间
date "+%d %B %Y";     //命令
statements;
end=$(date +%s)       //读取结束时间
difference=$(( end - start))   //计算时间差
echo Time taken to execute "date "+%d %B %Y"" is $difference seconds.    //输出


结果:
$ /c/Users/Administrator/Desktop/time_take.sh
15 十一月 2017
/c/Users/Administrator/Desktop/time_take.sh: line 5: statements: command not found
Time taken to execute date +%d %B %Y is 1 seconds.


7.纪元时被定义为从世界标准时间1970年1月1日0时0分0秒起至当前时刻的总秒数,不包括闰秒。当计算两个日期或两段时间的差值时,纪元时很有用处。你可以得出两个特定时间戳的纪元时间,并计算出两者之间的差值,由此就能知道两个日期之间相隔了多少秒。


星期
%a(例如:Sat)
%A(例如:Saturday)



%b(例如:Nov)
%B(例如:November)


日 %d(例如:31)


固定格式日期(mm/dd/yy) 
%D(例如:10/18/10)



%y(例如:10)
%Y(例如:2010)


小时 
%I或%H(例如:08)


分钟 
%M(例如:33)


秒 
%S(例如:10)


纳秒 
%N(例如:695208515)


Unix纪元时(以秒为单位) 
%s(例如:1290049486)


8. 在脚本中生成延时 sleep
#!/bin/bash
#文件名: sleep.sh
echo -n Count:
tput sc    //保存当前光标位置,就是说Count:不消失
count=0;    //定义count为0
while true;       //循环开始
do
if [ $count -lt 40 ];     //判断count是不是等于40
then
let count++;      
sleep 1;      //延时1s
tput rc        //恢复光标到最后保存位置
tput ed   //删除从当前光标位置到行尾的所有信息
echo -n $count;     //输出数字
else exit 0;
fi
done
原创粉丝点击