------------------------時間的格式
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'
.................
