時(shí)間獲取及延時(shí)
1 獲取時(shí)間
紀(jì)元時(shí):在系統(tǒng)內(nèi)部,日期被存儲(chǔ)為一個(gè)整數(shù)岳枷,其取值為自1970年1月1日0時(shí)0分0秒起呜叫,所流失的秒數(shù)
1.1 獲取時(shí)間
date
timedatectl
1.2 打印紀(jì)元時(shí)
date +%s #打印紀(jì)元時(shí)
date --date "Wed Aug 14 17:27:47 CST 2019" +%s #將某個(gè)時(shí)間轉(zhuǎn)化為紀(jì)元時(shí)
date --date "Aug 14 17:27:47 CST 2019" +%A #知道某個(gè)時(shí)間是星期幾
1.3 格式化輸出的時(shí)間
參數(shù) | 描述 |
---|---|
%% | 顯示字符% |
%a | 星期幾的縮寫(Sun..Sat) |
%A | 星期幾的完整名稱(Sunday...Saturday) |
%b/%h | 月份的縮寫(Jan..Dec) |
%B | 月份的完整名稱(January..December) |
%c | 日期與時(shí)間怀偷。只輸入date指令也會(huì)顯示同樣的結(jié)果 |
%C | 世紀(jì)(年份除100后去整) [00-99] |
%d | 日期(以01-31來(lái)表示)。 |
%D | 日期(含年月日)饭于。 |
%e | 一個(gè)月的第幾天 ( 1..31) |
%F | 日期维蒙,同%Y-%m-%d |
%g | 年份(yy) |
%G | 年份(yyyy) |
%H | 小時(shí)(00..23) |
%I | 小時(shí)(01..12) |
%j | 一年的第幾天(001..366) |
%k | 小時(shí)( 0..23) |
%l | 小時(shí)( 1..12) |
%m | 月份(01..12) |
%M | 分鐘(00..59) |
%n | 換行 |
%N | 納秒(000000000..999999999) |
%p | AM or PM |
%P | am or pm |
%r | 12小時(shí)制時(shí)間(hh:mm:ss [AP]M) |
%R | 24小時(shí)制時(shí)間(hh:mm) |
%s | 從00:00:00 1970-01-01 UTC開始的秒數(shù) |
%S | 秒(00..60) |
%t | 制表符 |
%T | 24小時(shí)制時(shí)間(hh:mm:ss) |
%u | 一周的第幾天(1..7); 1 表示星期一 |
%U | 一年的第幾周颅痊,周日為每周的第一天(00..53) |
%V | 一年的第幾周,周一為每周的第一天 (01..53) |
%w | 一周的第幾天 (0..6); 0 代表周日 |
%W | 一年的第幾周菱属,周一為每周的第一天(00..53) |
%x | 日期(mm/dd/yy) |
%X | 時(shí)間(%H:%M:%S) |
%y | 年份(00..99) |
%Y | 年份(1970…) |
%z | RFC-2822 風(fēng)格數(shù)字格式時(shí)區(qū)(-0500) |
%Z | 時(shí)區(qū)(e.g., EDT), 無(wú)法確定時(shí)區(qū)則為空 |
# date '+%Y-%m-%d'
2017-01-29
# date +%Y-%m-%d
2017-01-29
# date +%m/%d/%y
01/29/17
# date "+%Y-%m-%d %H:%M:%S"
2017-01-29 10:57:02
??實(shí)際應(yīng)用(shell中時(shí)間的計(jì)算必須要先將時(shí)間格式化成字符串):
# date -d now
Sun Jan 29 10:46:07 CST 2017
# date -d 'next monday'
Mon Jan 30 00:00:00 CST 2017
# date -d yesterday +%Y%m%d
20170128
1.4 測(cè)量一組命令所消耗的時(shí)間
#!/bin/bash
start=$(date +%s)
commands;
statements;
end=$(date +%s)
diffenence=$((end - start))
echo time taken to execute commands is $diffenence seconds.
time 命令是統(tǒng)計(jì)時(shí)間的最簡(jiǎn)單方式
延時(shí)
#!/bin/bash
echo count:
tput sc
#循環(huán)40秒
for count in `seq 0 40`
do
tput rc
tput ed
echo -n $count
sleep 1
done
變量使用了seq命令生成一系列數(shù)字
使用tput sc存儲(chǔ)光標(biāo)位置
通過(guò)tput rc恢復(fù)光標(biāo)位置
每次循環(huán)中纽门,通過(guò)tput rc恢復(fù)光標(biāo)位置营罢,使用tput ed清除從光標(biāo)到行尾之間的所有內(nèi)容,然后在終端中打印出新的count值蝙搔,sleep可以使腳本在每次的循環(huán)中延遲1秒