4

我需要提醒自己参加每周一次的会议。我公司的标准提醒工具的问题是,当它在wine下运行时,它会弹出一个屏幕外的虚拟桌面。

我想看看我是否能想出一个“at”命令来弹出一个提醒窗口,然后在接下来的一周重新提交它会很有趣。

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

单发版本将是:

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

有人能想出一个合适的类似quine的命令,每次运行时,它都会在下一周以重复周期另外重新提交相同的命令?

4

4 回答 4

1

试试这个:

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将在输入命令时设置,并且在作业执行时可能不正确,但这与您问题中的命令的行为相同。

于 2009-10-06T00:58:36.420 回答
0

我可能在作弊,但您可以利用 at保存大多数环境变量值的事实($DISPLAY虽然不是,$DISP但似乎也不是):

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

我用xmessage了一分钟,因为我有它们,但当然你可以根据自己的需要定制它。

于 2009-12-13T18:38:34.447 回答
0

尝试使用文件:

$ 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

这样,每次运行作业时,都会在下周一安排另一个作业。

于 2009-10-06T09:23:31.327 回答
0

很抱歉破坏了乐趣,但是……某种 cron 工作不是更有意义吗?

于 2010-04-11T20:22:42.553 回答