如何获得一个每小时报时的钟?

我想要一个程序(一个可以设置成自动启动的脚本之类的东西),每隔一个小时告诉你“现在是11点钟”。
我知道在Mac上很容易实现,但如何在Precise上做到呢?
3个回答

在标准仓库中有一个用于此目的的程序,叫做“saytime”。
使用以下命令安装:sudo apt-get install saytime 然后可以运行“saytime -r 3600”来每小时运行一次(3600秒,或者根据需要更改间隔时间)。使用此选项运行时,它将作为后台进程启动。
如果想要更改格式(例如去掉“and X seconds”),可以使用以下命令:“saytime -r 3600 -f %P%l%M”。完整的格式选项请参考“man saytime”。
来源:http://ubuntuforums.org/showthread.php?t=516600&p=3130400#post3130400

哇,真是糟糕。好眼力!这个确实很尴尬啊!是的,本来应该是3600。已经修改过来了。 - Jez W
1如果你遇到像sox FAIL formats: can't open output file '/dev/audio': Permission denied这样的问题,可以使用padsp来运行它:$ padsp saytime -r 3600 - franzlorenzon
@franzlorenzon 你怎样让 padsp saytime -r 3600 在Gnome的启动应用程序中工作?我尝试在那里添加它,但是它不起作用。 - Tracy Iquiña
它在终端上能正常工作吗?你能从Gnome中看到日志吗?(http://unix.stackexchange.com/questions/17244/where-is-log-file-of-gnome-3) - franzlorenzon
我该如何使用这个来在每个小时的开始运行,比如1点钟、2点钟等等? - Deepam Gupta

sudo apt-get install festival

如果你想要做个疯狂的话,也可以在gnome-schedule中进行添加:
echo This is my custom message | festival --tts

自定义消息可以包含命令的输出。
date

如果你想要一个更好听的声音,可以尝试一些类似的选择:
sudo apt-get install festvox-us1
echo "(set! voice_default 'voice_us1_mbrola)" | sudo tee -a /etc/festival.scm

我认为你也应该使用cron来使其每小时运行一次。 - franzlorenzon
这就是我所指的gnome-schedule。 - Jonathan
哎呀,你说得对 :) - franzlorenzon

当前的espeak版本(1.48.3)直接链接到mbrola语音。因此,您可以通过类似以下方式获得良好的结果:
date|espeak -v en-us

可以使用参数来调整espeak的声音。查看它的man页面以获取更多选项。