date、sleep和usleep命令
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
1.1 date命令
date用于獲取和設(shè)置操作系統(tǒng)的時(shí)間,還有hwclock是獲取硬件時(shí)間。
date有個(gè)選項(xiàng)"-d",可以用來描述獲取什么時(shí)候的時(shí)間,描述的方式非常開放,但不能使用"now"關(guān)鍵字,其他的如3天前"3 days ago",3天后"3 days",昨天"yesterday",下周一"next Monday",epoch時(shí)間"@EPOCH"等等。
Linux中設(shè)置date命令的顯示格式:date [+format],其中"+"表示從前面的時(shí)間中獲取其中的格式部分,如date -d "yesterday" +"%Y"獲取的是昨天的年份部分。
format格式如下所示:標(biāo)紅色的較常用。
| ? | 符號 | 意義 | 描述 |
| 年 | %y | 年(后兩位) | last two digits of year (00..99) |
| %Y | 年 | year | |
| 月 | %m | 月 | month (01..12) ? ? |
| ? 日 | %j | 年中天 | day of year (001..366) |
| %d | 月中天 | day of month (如01) | |
| %w | 周中天 | day of week (0..6); 0 is Sunday | |
| %u | 周中天 | day of week (1..7); 1 is Monday | |
| 周 | %U | 年中周(00-53) | week number of year with Sunday as first day |
| %W | 年中周(00-53) | week number of year with Monday as first day | |
| 時(shí) | %H | 時(shí)(24時(shí)制) | hour (00..23) |
| %I | 時(shí)(12時(shí)制) | hour (01..12) | |
| 分 | %M | 分 | minute (00..59) |
| 秒 | %S | 秒 | second (00..60) |
| %N | 納秒 | ns of current minute | |
| %s | 秒 | 從1970-01-01到目前時(shí)間的秒數(shù)總數(shù) | |
| 完整 格式 | %T | 完整時(shí)間 | time; same as %H:%M:%S |
| %D | 日期完整格式 | date; same as %m/%d/%y | |
| %F | 日期完整格式 | date; same as %Y-%m-%d | |
| 特殊 格式 | %n | 換行 | a newline |
| %t | tab鍵 | a tab |
使用date命令可以計(jì)算時(shí)間差。例如:
# 以下3個(gè)命令等價(jià) date -d "3 days ago" +%F date -d "-3 days" +%F date -d "now - 3 days" +%F再例如,給定一個(gè)時(shí)間,計(jì)算它的前幾天,后幾天。
# 以下兩條命令等價(jià) date -d "2018-02-19 3 days ago" +%F date -d "2018-02-19 - 3 days" +%F給定一個(gè)日期,計(jì)算該日期所在星期的星期一是幾月幾號。例如,2018-05-12是星期六,那么星期一是2018-05-07。
#!/bin/bash src_date="2018-05-12" src_weekday=`date -d $src_date +%w` Mon_date=`date -d "$src_date - $(( src_weekday - 1 )) days" +%F` echo $Mon_datedate命令還可以計(jì)算延遲時(shí)間(兩個(gè)時(shí)間點(diǎn)的時(shí)間差)。如果要計(jì)算精確度為秒級的延遲,可直接使用%s計(jì)算,但如果要計(jì)算毫秒級、微秒級甚至是納秒級的時(shí)間差,則需要對date的結(jié)果進(jìn)行一番計(jì)算和轉(zhuǎn)換。以下是秒級時(shí)間差計(jì)算方法,毫秒級計(jì)算方法見:計(jì)算毫秒級、微秒級時(shí)間差。
#!/bin/bash start_time=$(date +"%s") find / -type f -name "*.db" &>/dev/null end_time=$(date +"%s") time_diff=$(( start_time - end_time )) echo $time_diff1.2 sleep和usleep
在shell中常使用sleep命令指定休眠時(shí)間,休眠的意思表示讓當(dāng)前進(jìn)程進(jìn)入睡眠狀態(tài)。例如:
sleep 5sleep默認(rèn)的休眠單位為秒,因此上面表示休眠5秒鐘。如果要休眠毫秒級、微秒級,則可以使用小數(shù)。例如:
sleep 0.5表示休眠半秒鐘。
此外,還有專門的微秒級的休眠命令usleep。例如:
usleep 1000表示休眠1000微秒,即1毫秒。
轉(zhuǎn)載于:https://www.cnblogs.com/f-ck-need-u/p/7427262.html
總結(jié)
以上是生活随笔為你收集整理的date、sleep和usleep命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端Web开发如何处理横竖屏
- 下一篇: mui 页面滚动