Напоминалка

Искусство написания bash скриптов. Делимся своими наработками
Ответить
Аватара пользователя
olgmen
Сообщения: 155
Зарегистрирован: 30 ноя 2012, 11:00
Темы: 32
Откуда: Санкт-Петербург
Статус: Не в сети

Напоминалка

Сообщение olgmen » 01 фев 2013, 08:34

Небольшой скрипт выводящий сообщения или в окно сообщений notify или в окно zenity, это кому как нравится.

Создаем в домашней папке простой текстовый скрипт под названием calendar.txt. В скрипт записываем сообщения по схеме

ддмм;Текст сообщения

здесь:
дд - день в который надо вывести сообщение
мм - месяц

Например запись такого вида

0102;Сегодня 1 февраля

Выведет используя notify-send

Изображение

а это при использовании zenity

Изображение

Текст скрипта

Код: Выделить всё

#!/bin/bash
 
DATE=`date +%d%m`
TMP=`cat ~/calendar.txt | grep $DATE | sed 's/^[0-9]*\.[0-9]*;//g'`
if [[ -n $TMP ]]
then
    zenity --info --title="Сообщения" --text="$TMP"
#    notify-send -i apport "Сообщения" "$TMP"
fi

exit 0; 
для вывода сообщения с помощью notify-send раскомментируйте строку

Код: Выделить всё

# notify-send -i apport "Сообщения" "$TMP"
Скрипт создан совместными усилиями в чате этого форума.
Последний раз редактировалось ZEN 28 июн 2013, 19:03, всего редактировалось 4 раза.
Кто ищет, тот всегда найдет

Arch Linux
Conky - 1.9

Аватара пользователя
Александр
Сообщения: 70
Зарегистрирован: 30 сен 2012, 08:59
Темы: 2
Статус: Не в сети

Re: Напоминалка

Сообщение Александр » 02 фев 2013, 08:13

Спасибо, интересная штука! А возможно ли время к дате прикрутить? Было бы удобнее.

Аватара пользователя
olgmen
Сообщения: 155
Зарегистрирован: 30 ноя 2012, 11:00
Темы: 32
Откуда: Санкт-Петербург
Статус: Не в сети

Re: Напоминалка

Сообщение olgmen » 02 фев 2013, 09:07

Александр: я не очень разбираюсь в баше, основную работу сделал ZEN, может он подскажет.
Кто ищет, тот всегда найдет

Arch Linux
Conky - 1.9

Аватара пользователя
ZEN
Администратор
Сообщения: 1362
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: Напоминалка

Сообщение ZEN » 02 фев 2013, 11:46

Александр писал(а):Спасибо, интересная штука! А возможно ли время к дате прикрутить? Было бы удобнее.
Сделать можно всё, но что если на одну минуту позже компьютер запустился?

Код: Выделить всё

#!/bin/bash

DATE=`date +'%d.%m.%Y %H:%M'`
TMP=`cat ~/calendar.txt \
| grep "$DATE" \
| sed 's/^[0-9]*\.[0-9]*\.[0-9 ]*[0-9]*:[0-9]*;//g'`
if [[ -n $TMP ]]
then
    zenity --info --title="Сообщения" --text="$TMP"
#   notify-send -i apport "Сообщения" "$TMP"
fi

exit 0; 
Соответственно в файле ~/calendar.txt пишем вот так:
02.02.2013 11:30;Hello, World
А вообще, надо подумать хранить дополнительно состояние и если что информировать о пропущенных событиях.

UPD Важное обновление
Оба варианта скрипта содержат исправление. Теперь можно в тексте, после даты, ставить знак ";". Ранее awk выводил текст от первого ";" до следующего, если есть в тексте. То есть выводился обрезанный текст. Сейчас подставил sed для удаления текста в начале строки, который соответствует формату даты.
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Аватара пользователя
Александр
Сообщения: 70
Зарегистрирован: 30 сен 2012, 08:59
Темы: 2
Статус: Не в сети

Re: Напоминалка

Сообщение Александр » 02 фев 2013, 14:24

ZEN писал(а): А вообще, надо подумать хранить дополнительно состояние и если что информировать о пропущенных событиях.
Вот, я о том же подумал. Было бы идеально!
И, кстати, можно подробнее, что необходимо для запуска? У меня молчит и ничего не показывает. В терминале - пусто.

Аватара пользователя
olgmen
Сообщения: 155
Зарегистрирован: 30 ноя 2012, 11:00
Темы: 32
Откуда: Санкт-Петербург
Статус: Не в сети

Re: Напоминалка

Сообщение olgmen » 02 фев 2013, 14:31

У меня в автостарте опенбокса такие строки

Код: Выделить всё

# Вывод сообщений
(sleep 5s && ~/note.sh) &
Кто ищет, тот всегда найдет

Arch Linux
Conky - 1.9

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей