1.10 获取、设置日期和延时

《Linux Shell 脚本攻略(第 2 版)》读书笔记

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

  1. 读取日期

    $ date
    
  2. 打印纪元时

    $ date +%s
    

    将指定日期转换成纪元时:

    $ date --date "Thu Feb 28 16:58:10 CST 2019" +%s #--date用于提供日期串作为输入(也可以是 -d)
    

    上面的命令在 OS X 系统中执行报错,只能使用下面这中格式:

    $ date -j -f "%Y-%m-%d %H:%M:%S" "2015-09-28 10:20:32" +%s
    
  3. 格式化输出

    $ date "+%d %B %Y"
    
  4. 设置日期和时间

    $ date -s "Thu Feb 28 16:16:52 CST 2019" #需要管理员权限
    
  5. 测试脚本执行时间

    #!/bin/sh
    
    start=$(date +%s)
    
    # 需要执行的脚本……
    
    end=$(date +%s)
    difference=$(( end - start))
    echo Time taken to execute commands is $difference seconds.
    
  6. 在脚本中生成延时

    #!/bin/sh
    
    echo Count:
    tput sc;     #存储光标位置
    
    count=0;
    while true; do
      if [ $count -lt 40 ]; then
        let count++;
        sleep 1; #延时1秒
        tput rc      #恢复光标位置
        tput ed      #清除从当前光标位置到行尾之间的所有内容
        echo $count;
      else 
        exit 0;
      fi
    done
    

格式字符标

日期内容 格式
星期 %a (例如: Sat)
%A (例如: Saturday)
%w (例如:3)
%b (例如:Nov)
%B (例如:November)
%m (例如:03)
%d (例如:31)
固定格式日期(mm/dd/yy) %D (例如:10/18/10)
%y (例如:10)
%Y (例如:2010)
小时 %I%H (例如:08)
分钟 %M (例如:33)
%S (例如:10)
纳秒 %N (例如:254354)
Unix 纪元时(已秒为单位) %s (例如:1551342521)
时区 %Z (例如:CST)
%z (例如:+0800)

你可能感兴趣的:(1.10 获取、设置日期和延时)