码迷,mamicode.com
首页 > 系统相关 > 详细

Linux Shell脚本攻略(1.10)

时间:2015-05-31 23:21:53      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:shell

1.10 获取、设置日期和延时

  • 很多应用程序需要以不同的格式打印日期、设置日期和时间、根据日期和时间执行某项操作。延时通常用于在程序执行过程中提供一段等待时间(比如1秒)。同样的,我们也能够一多种格式打印日期,或者在命令行中设置日期。在类Unix系统中,日期被存储为一个整数,其大小为自世界标准时间起所流逝的秒数。这种计时方式称为纪元时Unix时间

1.10.1 获取、设置时间

  • 以下的程序给出了多种用法:
#!/bin/bash
start=$(date +%s)                              #获取纪元时间
date                                           #输出系统时间
date +%s                                       #打印纪元时间
date --date "Thu Nov 18 08:07:21 IST 2010" +%s #转换成纪元时间
date --date "Jan 20 2001" +%A                  #获取当前星期几
#date "+%d %B %Y"                              #按格式打印日期
date -s "21 June 2009 11:01:22"                #设置日期和时间
end=$(date +%s)                                #获取纪元时间
difference=$((end-start))                      #获取执行时间
echo Time taken to execute commands is $difference seconds.
  • 注意:可以用time来得到脚本的执行时间。

1.10.2 设置延时

  • 编写以循环方式运行的监视脚本时,设置时间间隔是必不可少的。为了在脚本中推迟执行一段时间,可以使用sleep no_of_seconds。
#!/bin/bash
echo -n Count:
tput sc                        #存储光标位置
count=0
while true;
    do
        if [ $count -lt 40 ]
        then
            let count++
            sleep 1;           #休眠1秒钟
            tput rc            #恢复光标位置
            tput ed            #清除当前位置到末尾的内容
            echo -n $count;
        else exit 0;
        fi
    done
  • 以上这段脚本显示了如何使用延时。tput sc存储光标位置,sc为 save cursor的缩写。在每次循环中,通过恢复之前存储的光标位置,在终端中打印出新的count值。tput rc用于恢复光标位置,rc为 recovery cursor的缩写。tput ed清除从当前光标位置到行尾之间的所有内容,使得旧的值被清除,写入新的值,ed可以看作是erase to end 的缩写。在这段程序中,通过sleep 1提供1秒钟的延时。

1.10.3 时间设置、读取时常用的参数

日期内容 格式说明
星期 %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 (例如:692508515)
Unix纪元时(以秒为单位) %s (例如:1290049486)

1.10.4 参考

Linux Shell脚本攻略(1.10)

标签:shell

原文地址:http://blog.csdn.net/wxb1553725576/article/details/46292261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!