shell中date使用總結-基於自動定期備份mysql實踐



------------------------時間的格式

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'

 

.................


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM