预备知识

在类Unix系统中,日期被存储成一个整数,其大小为自时间标准时间(UTC)1970年1月1号0时0分0秒起流失的秒数。这种计时方式称为纪元时或Unix时间。

实战演练

  • 读取时间
[root@shaofeng ~]# date
2018年 11月 27日 星期二 23:05:45 CST
  • 打印现在纪元时
[root@shaofeng ~]# date +%s
1543331191
  • 指定日期串转换成纪元时
[root@shaofeng ~]# date --date "Thu Nov 18 08:07:21 IST 2010" +%s
1290047841
  • 获取日期是星期几
[root@shaofeng ~]# date --date "Jan 20 2001" +%A
星期六
  • 打印对应格式的日期
[root@shaofeng ~]# date "+%d %B %Y"
27 十一月 2018
  • 设置日期和时间
[root@shaofeng ~]# date -s "21 June 2009 11:01:22"
  • 计算话费时间
[root@shaofeng ~]# chmod a+x ./time_take.sh
[root@shaofeng ~]# ./time_take.sh
Time taken to execute commands is 0 seconds.
[root@shaofeng ~]# cat ./time_take.sh
#!/bin/bash
#文件名:time_take.sh
start=$(date +%s)
#commands;
#statements;

end=$(date +%s)
difference=$((end - start))
echo Time taken to execute commands is $difference seconds.

工作原理

日期内容 格式
星期 %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(例如:)

补充内容

  • 在脚本中生成延迟
[root@shaofeng ~]# cat ./sleep.sh
#!/bin/bash
#文件名:sleep.sh
echo -n Count:
tput sc #存储光标位置

count=0
while true;
do
        if [ $count -lt 10000 ]; 
        then
                let count++;
                sleep 1;
                tput rc  #恢复光标位置
                tput ed  #清除光标位置到行尾之间的内容
                echo -n $count
        else exit 0;
        fi
done

results matching ""

    No results matching ""