你能写一个简单的每周提醒使用bash / sh脚本quine吗?

我需要提醒自己每周参加一次会议。 我的公司的标准提醒工具的麻烦是,当它在葡萄酒下运行时,它会popup在屏幕外的虚拟桌面上。

我觉得看看能不能拿出一个“at”命令popup一个提醒窗口,然后在接下来的一周重新提交,这将是有趣的。

我知道我可以使用cron或一些闹钟应用程序,但这激起了我的好奇心。

单发版本将是:

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

有人能够提出一个合适的类似奎因的命令,每次运行时,它会在下一周重复提交相同的命令,重复循环?

试试这个:

 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 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 

这样,每次工作运行,下一个星期一安排另一个工作。

我可能是作弊,但是你可以利用这个事实,即保存大多数环境变量的值(不是$DISPLAY ,但$DISP看起来似乎):

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

我使用了xmessage和一分钟,因为我有他们,但当然你可以根据你的需要量身定做。

对不起,有趣的,但是…不是某种cron工作更有意义吗?