我正在尝试编写一个bash脚本来根据日期创建/检查文件是否存在。基本上我想要一个todo_lists
的目标,其中包含今天的待办事项清单。所以每当我打开终端(mac os 10.6.8)时,它会检查6-29-11.txt或者其他什么基于
date "+%m%d%Y"
如果它只存在less
的内容,如果它没有创建一个。
所以我想知道如何使用日期格式化的字符串作为文件名以及如何检查字符串变量,即。
[ -e date_string.txt ] && ...
我如何完成这些事情,我是bash的新手
答案 0 :(得分:5)
试试这个:
DATE=`date "+%m%d%Y"`
if [ -f "todo_lists/$DATE.txt" ]; then
do stuff
fi
反引号(`)表示运行此命令并将输出作为字符串
返回答案 1 :(得分:2)
为此,您的Mac已插入子弹。
简而言之:您可以创建任何文件(默认为$ HOME / calendar),您可以通过以下形式输入一行提醒:
06/29<TAB>reminder for today
06/30<TAB>reminder for tomorrow
07/15<TAB>another one
并进入$HOME/.profile
简单输入calendar
命令。
完成上述操作后,每次打开一个新的终端窗口时,calendar
命令都会查看日历文件以获取今日提醒,如果找到提醒,将打印出来......
您可以添加更多不同的日历(例如名称日期)以及更多...
检查man calendar
你qst的答案是:
file="./todo/$(date "+%F").txt"
[ -f "$file" ] && {
echo "My today reminders"
cat "$file"
}
我建议使用格式“+%F”(2011-06-29),因为当你ls
左右时,你会得到一个排序的文件列表......
ps:使用$(command ....)
形式而不是`command`(反引号),因为你可以很容易地嵌套它们$(command $(another $(nexT)))
。在当前的bash中不推荐使用反引号。