2011-06-29 128 views
1

我想寫一個bash腳本來創建/檢查基於日期的文件的存在。基本上我想有一個todo_lists的目錄裏面有今天待辦事項列表的文件。所以每次我打開終端時(MAC OS 10.6.8),它會檢查,看看是否6-29-11.txt或任何基於bash根據日期創建文件?

date "+%m%d%Y" 

如果它存在的它,如果它只是less內容不會創建一個。

所以我想知道如何使用該日期格式的字符串作爲文件名以及如何檢查字符串變量,即

[ -e date_string.txt ] && ... 

我將如何完成這些事情,我很新來砸

回答

5

嘗試此:

DATE=`date "+%m%d%Y"` 
if [ -f "todo_lists/$DATE.txt" ]; then 
    do stuff 
fi 

的反引號(')指,運行這個命令並返回輸出作爲字符串

+0

非常感謝我所需要的 –

+0

和否定? – pufos

+0

@pufos - 我假設你的意思是,檢查文件是否存在?如果是,則語法爲'if [! -f「todo_lists/$ DATE.txt」];然後' – Geoffrey

2

爲此,您的Mac已經插入了子彈。

總之:你可以讓任何文件(默認值是$ HOME /日曆),你可以在表單中輸入類似一行提醒到它:

06/29<TAB>reminder for today 
06/30<TAB>reminder for tomorrow 
07/15<TAB>another one 

和你的$HOME/.profile簡單輸入calendar命令。

以上後,每次打開一個新的終端窗口時,calendar命令會徵詢了今天提醒日曆文件,發現一個提醒時,會打印出它...

您可以加入更多不同的日曆(與namedays例如)和其他...
檢查man calendar


,並回答了你的QST是:

file="./todo/$(date "+%F").txt" 
[ -f "$file" ] && { 
     echo "My today reminders" 
     cat "$file" 
} 

我建議使用格式「+%F」(2011-06-29),因爲你得到的文件排序列表,當你做ls左右...

PS:使用$(command ....)形式,而不是`命令「(反引號),因爲你可以輕鬆地將它們嵌入$(command $(another $(nexT)))中。反引號在當前bash中已棄用。

+0

也正是我所需要的,只是他先來了 –