bash создать файл на основе даты? - PullRequest
1 голос
/ 29 июня 2011

Я пытаюсь написать bash-скрипт для создания / проверки существования файла на основе даты.В основном я хочу иметь директорию todo_lists, внутри которой находятся файлы с сегодняшним списком задач.Поэтому каждый раз, когда я открываю терминал (Mac OS 10.6.8), он проверяет, есть ли 6-29-11.txt или что-то еще на основе

date "+%m%d%Y"

, если он существует просто less, содержимоеэто и если он не создает один.

, поэтому мне было интересно, как использовать эту строку в формате даты в качестве имени файла и как проверить строковые переменные, т.е.

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

Как бы явыполнить эти вещи, я довольно новичок в bash

Ответы [ 2 ]

5 голосов
/ 29 июня 2011

Попробуйте это:

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

Символ обратного хода (`) означает, запустите эту команду и верните вывод в виде строки

2 голосов
/ 29 июня 2011

Для этого на вашем Mac уже вставлены маркеры.

Короче говоря: вы можете создать любой файл (по умолчанию $ HOME / calendar) и ввести в него напоминание на одну строку в виде:

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

и в свой $HOME/.profile просто введите команду calendar.

После вышеизложенного, каждый раз, когда вы открываете новое окно терминала, команда calendar будет обращаться к календарюфайл для напоминаний на сегодня, и когда найдется напоминание, распечатает его ...

Вы можете включить больше различных календарей (например, с именами) и многое другое ...
check man calendar


и ответ на ваш вопрос:

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 устарели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...