date、sleep和usleep命令
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
1.1 date命令
date用于獲取和設置操作系統的時間,還有hwclock是獲取硬件時間。
date有個選項"-d",可以用來描述獲取什么時候的時間,描述的方式非常開放,但不能使用"now"關鍵字,其他的如3天前"3 days ago",3天后"3 days",昨天"yesterday",下周一"next Monday",epoch時間"@EPOCH"等等。
Linux中設置date命令的顯示格式:date [+format],其中"+"表示從前面的時間中獲取其中的格式部分,如date -d "yesterday" +"%Y"獲取的是昨天的年份部分。
format格式如下所示:標紅色的較常用。
| ? | 符號 | 意義 | 描述 |
| 年 | %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 | |
| 時 | %H | 時(24時制) | hour (00..23) |
| %I | 時(12時制) | hour (01..12) | |
| 分 | %M | 分 | minute (00..59) |
| 秒 | %S | 秒 | second (00..60) |
| %N | 納秒 | ns of current minute | |
| %s | 秒 | 從1970-01-01到目前時間的秒數總數 | |
| 完整 格式 | %T | 完整時間 | 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命令可以計算時間差。例如:
# 以下3個命令等價 date -d "3 days ago" +%F date -d "-3 days" +%F date -d "now - 3 days" +%F再例如,給定一個時間,計算它的前幾天,后幾天。
# 以下兩條命令等價 date -d "2018-02-19 3 days ago" +%F date -d "2018-02-19 - 3 days" +%F給定一個日期,計算該日期所在星期的星期一是幾月幾號。例如,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命令還可以計算延遲時間(兩個時間點的時間差)。如果要計算精確度為秒級的延遲,可直接使用%s計算,但如果要計算毫秒級、微秒級甚至是納秒級的時間差,則需要對date的結果進行一番計算和轉換。以下是秒級時間差計算方法,毫秒級計算方法見:計算毫秒級、微秒級時間差。
#!/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命令指定休眠時間,休眠的意思表示讓當前進程進入睡眠狀態。例如:
sleep 5sleep默認的休眠單位為秒,因此上面表示休眠5秒鐘。如果要休眠毫秒級、微秒級,則可以使用小數。例如:
sleep 0.5表示休眠半秒鐘。
此外,還有專門的微秒級的休眠命令usleep。例如:
usleep 1000表示休眠1000微秒,即1毫秒。
轉載于:https://www.cnblogs.com/f-ck-need-u/p/7427262.html
總結
以上是生活随笔為你收集整理的date、sleep和usleep命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端Web开发如何处理横竖屏
- 下一篇: vue2.X的路由