时间获取及延时
1 获取时间
纪元时:在系统内部,日期被存储为一个整数,其取值为自1970年1月1日0时0分0秒起,所流失的秒数
1.1 获取时间
date
timedatectl
1.2 打印纪元时
date +%s #打印纪元时
date --date "Wed Aug 14 17:27:47 CST 2019" +%s #将某个时间转化为纪元时
date --date "Aug 14 17:27:47 CST 2019" +%A #知道某个时间是星期几
1.3 格式化输出的时间
| 参数 | 描述 |
|---|---|
| %% | 显示字符% |
| %a | 星期几的缩写(Sun..Sat) |
| %A | 星期几的完整名称(Sunday...Saturday) |
| %b/%h | 月份的缩写(Jan..Dec) |
| %B | 月份的完整名称(January..December) |
| %c | 日期与时间。只输入date指令也会显示同样的结果 |
| %C | 世纪(年份除100后去整) [00-99] |
| %d | 日期(以01-31来表示)。 |
| %D | 日期(含年月日)。 |
| %e | 一个月的第几天 ( 1..31) |
| %F | 日期,同%Y-%m-%d |
| %g | 年份(yy) |
| %G | 年份(yyyy) |
| %H | 小时(00..23) |
| %I | 小时(01..12) |
| %j | 一年的第几天(001..366) |
| %k | 小时( 0..23) |
| %l | 小时( 1..12) |
| %m | 月份(01..12) |
| %M | 分钟(00..59) |
| %n | 换行 |
| %N | 纳秒(000000000..999999999) |
| %p | AM or PM |
| %P | am or pm |
| %r | 12小时制时间(hh:mm:ss [AP]M) |
| %R | 24小时制时间(hh:mm) |
| %s | 从00:00:00 1970-01-01 UTC开始的秒数 |
| %S | 秒(00..60) |
| %t | 制表符 |
| %T | 24小时制时间(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 | 时间(%H:%M:%S) |
| %y | 年份(00..99) |
| %Y | 年份(1970…) |
| %z | RFC-2822 风格数字格式时区(-0500) |
| %Z | 时区(e.g., EDT), 无法确定时区则为空 |
# 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
实际应用(shell中时间的计算必须要先将时间格式化成字符串):
# 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 测量一组命令所消耗的时间
#!/bin/bash
start=$(date +%s)
commands;
statements;
end=$(date +%s)
diffenence=$((end - start))
echo time taken to execute commands is $diffenence seconds.
time 命令是统计时间的最简单方式
延时
#!/bin/bash
echo count:
tput sc
#循环40秒
for count in `seq 0 40`
do
tput rc
tput ed
echo -n $count
sleep 1
done
变量使用了seq命令生成一系列数字
使用tput sc存储光标位置
通过tput rc恢复光标位置
每次循环中,通过tput rc恢复光标位置,使用tput ed清除从光标到行尾之间的所有内容,然后在终端中打印出新的count值,sleep可以使脚本在每次的循环中延迟1秒










网友评论