我正在尝试编写一个bash脚本来创建/检查基于日期的文件是否存在。基本上,我想有一个目录的todo_lists,其中有文件与今天的待办事项列表。因此,每次我打开终端(mac os 10.6.8)时,它都会检查6-29-11.txt或其他基于
date "+%m%d%Y"如果它存在,只需less它的内容,如果它不创建一个。
所以我想知道如何使用日期格式的字符串作为文件名,以及如何检查字符串变量。
[ -e date_string.txt ] && ...我该如何完成这些事情,我对bash还是个新手
发布于 2011-06-29 12:35:54
试试这个:
DATE=`date "+%m%d%Y"`
if [ -f "todo_lists/$DATE.txt" ]; then
do stuff
fi反引号(`)表示运行此命令并以字符串形式返回输出
发布于 2011-06-29 20:41:59
为此,您的Mac已经插入了项目符号。
简而言之:您可以创建任何文件(默认为$HOME/日历),并可以在其中输入一行提醒,格式如下:
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)))它们。Backticks在当前bash中已被弃用。
https://stackoverflow.com/questions/6515796
复制相似问题