next up previous
Next: 為什麼有一些 script 是用 #! ... Up: 中級的問題 Previous: 當我要從 pipe 讀一行輸入時,要如何才能讓這行資料像是直接從鍵盤輸 入而非從一個大 block buffer

我要如何在檔案名字中加入日期?

這其實並不難,但是看起來有一點神秘。我們就從 date 這個命令開始說 起:date 能接收一個格式字串,並根據此字串來決定它的輸出是什麼。這 個格式字串必需用單引號括起來,以避免 shell 自己去解釋這個字串。 試試以下這個命令:

date '+

你應該會得到類似 130994 的結果。如果你還想把它加上標點符號,你只要 直接把這些字元加入格式字串中就行了(不要用斜線 '/'):

date '+

在這個格式字串中還有很多 token 可供使用:建議讀 date 的 man page 就 可以找到有關的說明。

現在,就可以把上述 date 命令的結果放到檔名裡去了。譬如,要造一個名 為 report.130994(反正就是代表今天日期的意思)的檔案:

FILENAME=report.`date '+

注意一點,這裡一共用了兩組引號:裡面的引號是為了避免格式字串被 shell 用去做其他解釋;外面那組引號則是用來告訴 shell 包起來的部份要去執 行,並把執行的輸出代換到這整行命令中(command substitution)。



Tan Koan-Sin
1999-03-02