小先生教你使用shell指令碼中的date命令

2021-08-17 01:16:12 字數 2284 閱讀 8618

前言:

在進行程式開發或除錯的時候,我們經常會回去ubuntu系統的時間,有時只是單純的想檢視時間,但我們更多的時候是想通過系統時間去做一些事情,例如通過時間命令一些資料夾或者檔案,等等。

以下對date的使用均僅限於以unix為基礎的系統,嵌入式平台或者android平台上,對date命令做了簡化處理,所以並不適用,請謹記!

小先生的乾貨:

下面是官方對date的使用講解,看的是不是有點... ...

用法:date [選項]... [+格式]

或:date [-u|--utc|--universal] [mmddhhmm[[cc]yy][.ss]]

display the current time in the given format, or set the system date.

必選引數對長短選項同時適用。

-d, --date=string display time described by string, not 'now'

-f, --file=datefile like --date; once for each line of datefile

-i[fmt], --iso-8601[=fmt] output date/time in iso 8601 format.

fmt='date' for date only (the default),

'hours', 'minutes', 'seconds', or 'ns'

for date and time to the indicated precision.

example: 2006-08-14t02:34:56-0600

-r, --rfc-2822 output date and time in rfc 2822 format.

example: mon, 14 aug 2006 02:34:56 -0600

--rfc-3339=fmt output date/time in rfc 3339 format.

fmt='date', 'seconds', or 'ns'

for date and time to the indicated precision.

example: 2006-08-14 02:34:56-06:00

-r, --reference=file display the last modification time of file

-s, --set=string set time described by string

-u, --utc, --universal print or set coordinated universal time (utc)

--help 顯示此幫助資訊並退出

--version 顯示版本資訊並退出

接下來小先生將會通過幾個用例進行部分引數的說明:

用例1:獲取某一天這個時刻的系統時間並以「年月日_時分秒」顯示

$ date -d "***" +"%y%m%d_%h%m%s"

說明:***:指的是你想顯示的那一天的乙個字串描述,例如,今天可以用today、now等,明天可以用tomorrow(貌似只能使用這個),前天或前幾天可以用yesterday,1 days ago,n days ago。

效果:表示20180315_203053前兩天的這個時刻

date -d "2 days ago" +"%y%m%d_%h%m%s"

20180313_203053

用例2:獲取前一小時的當前時刻

$ date -d "(-)n hours" +"%y%m%d_%h%m%s"

說明:n表示你要去的時間與當前時間相差的小時數,加上「-」代表你要回去n小時,不要減號表示你要到的未來n小時。

效果:如果想回到2個小時前

$ date -d "-2 hours" +"%y%m%d_%h%m%s"

20180315_193357

備註:"%y%m%d_%h%m%s"的顯示可以根據讀者喜好自行新增和刪減,也可以變更間隔符等等。

用例3:設定時間

$ date -s "2018-03-15 20:43:00"

說明:-s表示要設定時間了,但是後面的引數可以隨意,可以只設定年月日,也可以時分,秒就算了,等等就到了,哈哈哈。

效果:由於我的時間相當準,就不演示了,呵呵呵~。

未完待續~~~

<<< 返回部落格架構

教你使用shell陣列

陣列的使用,需要掌握 1 對陣列進行賦值 2 通過下標訪問陣列元素 3 迴圈遍歷所有的元素 如下 01 bin bash 02 03a 39 04b 5 05c 36 06d 12 07e 9 08f 35 09 對陣列進行賦值 10values a b c d e f 11 values 39 5...

Shell指令碼中cd命令使用

在寫shell指令碼的時候發現cd切換目錄的時候無法切換,是下面的。bin bash changedir.sh cd home firefox pwd 我仔細一想,我執行的時候是 changedir.s h來執行的,這樣執行的話終端會產生乙個 子shell 子shell去執行我的指令碼,在子shel...

Shell指令碼中的分號使用

在linux中,語句中的分號一般用作 塊標識 1 單行語句一般要用到分號來區分 塊,例如 if ps1 then echo test is ok fi test is ok 該指令碼或命令列中,需要兩個分號才為正確的語句,第乙個分號是then前的分號,用於標識條件塊結束,第二個分號在fi前,用於標識...