------------------------時間的格式
date [OPTION]... [+FORMAT]
echo `date 空格 +'時間格式串'`
呼叫date必須加符號反引號``,表示執行裡面的結果
當為: `date +'%Y%m%d-%H:%M:%S'`沒有時分秒的情況下,不需要用''將格式包含起來。但是增加時分秒後,
如果還這樣子用 `date +%Y%m%d %H:%M:%S` 則會報錯:
date: extra operand `%H:%M:%S'
將其看成是額外的引數去了。如果日期與時間有符號連線起來,則不會:
%Y%m%d-%H:%M:%S,關鍵是有空格,程式誤判了。
經驗:習慣最好是將格式用引號括起來。可以是單引號,也可以是雙引號。根據shell變數定義的情況來。
echo `date + "%Y%m%d %H:%M:%S"` 會直接輸出在螢幕上。
定義在shell變數中的方式:
DATE="`date +'%Y%m%d-%H:%M:%S'`"
這裡最外面已經有個雙引號。裡面格式用單引號括起來。
+就表示顯示時間,而非設定時間。格式設定為一個加號後接數個標記
如果不確定時的測驗方式:
1、在終端使用echo。會直接輸出在螢幕上。
2、date --help 會顯示幫助資訊
date實際上就是一個命令。
-d, --date=STRING display time described by STRING, not `now'
date +%y%m%d --date=5 days ago
如果不加--date,預設是顯示當前時間,按照格式"%y%m%d"進行顯示。
現在加一個--date引數,就不是顯示now了。
假設現在是:14:45
那麼,echo `date +"%Y%m%d %H:%M:%S" --date="5 days ago"`
得到的時間是:5天之前的現在時間——20130824 14:45:00
===================================關於echo命令
在shell中。
方式1、echo "要輸出的字串"
方式2、 echo 要輸出的字串
在某些情況下,使用引號與不使用都沒區別。
要讓shell把裡面的結果執行的話,則是
echo "``"
echo "-------------------$(date +"%y-%m-%d %H:%M:%S")----------------"
我可以把()看成是``的替代符號。
要輸出換行\n的時候,必須呼叫 -e 引數
echo -e "輸出\n輸出"
============================================沒搞清楚什麼樣的字元才是--date=""裡面的合法格式呢?
假設我要想顯示上個月,怎麼使用
date --date="LAST MONTH" +"%Y-%m"
技巧:如果不確定,自己到shell命令列下面去試。
如果是非法的格式,則會提示的,比如,我傳遞一個:--date="LAST"
提示為date: invalid date `LAST'
.................