Можете ли вы написать простое еженедельное напоминание, используя сценарий bash/sh quine?

Мне нужно установить себе напоминание для участия в еженедельном собрании. Проблема со стандартным инструментом напоминания моей компании в том, что когда он работает под Wine, он появляется на виртуальном рабочем столе за пределами экрана.

Я подумал, что было бы интересно посмотреть, смогу ли я придумать команду "at", которая выскакивает в окне напоминания, а затем повторно отправляется на следующую неделю.

Я знаю, что могу использовать cron или какое-нибудь приложение с будильником, но это пробудило мое любопытство.

Одноразовая версия будет:

echo "DISPLAY=$DISPLAY zenity --title='Weekly Meeting' --text='Time for the weekly meeting' --info" | at 0955 NEXT Monday

Может ли кто-нибудь придумать подходящую команду, похожую на quine, которая при каждом запуске будет дополнительно повторять эту же команду на следующей неделе в повторяющемся цикле?

4 ответа

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

export reminder='"DISPLAY=$DISPLAY zenity --title='\''Weekly Meeting'\'' --text='\''Time for the weekly meeting'\'' --info" | at 0955 NEXT Monday'; echo $reminder | at 0955 NEXT Monday

Изменить оба at приказывает сказать at now + 1 minute для тестирования. $DISPLAY будет установлен при вводе команды и может быть неправильным во время выполнения задания, но это то же поведение, что и команда в вашем вопросе.

Попробуйте с файлом:

$ cat /tmp/quine_file
DISPLAY=:0.0 zenity --title='Weekly Meeting' --text='Time for the weekly meeting' --info;
at '0955 NEXT monday' </tmp/quine_file;

$ at '0955 NEXT monday' </tmp/quine_file

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

Я, вероятно, обманываю, но вы можете воспользоваться тем, чтоat сохраняет значение большинства переменных среды (не $DISPLAY хотя, ни $DISP похоже на то):

export FOO=$DISPLAY CMD='DISPLAY=$FOO xmessage "hi there";
echo "$CMD" | at now + 1 minutes'
eval "$CMD"

я использовал xmessage и одну минуту, потому что они у меня были, но, конечно, вы можете адаптировать их к вашим потребностям.

Извините, что испортил веселье, но... разве какая-то работа cron не имеет больше смысла?

Другие вопросы по тегам