如何从长时间运行的shell命令进行桌面通知?

我目前正在尝试configurationsphinxsearch。 索引需要大约7分钟。 太长等待,所以我通常在testing结果之前开始做其他一些任务。 但是,我希望在索引完成时收到通知 – 您有什么想法? 问题在于会话通过ssh运行。 理想的是一些托盘通知,它会监视在最小化或在不同的虚拟桌面上显示的terminal上的变化。

我的头顶上有几个可能性:

  • 播放音乐或令人不安的声音文件
  • 打开一个特定的“我完成了! 网页与您的浏览器(大多数浏览器将只是打开一个新的标签或窗口,如果你已经打开)
  • notify-sendgmessagexmessage ,这些都做大致相同的事情:用你指定的消息popup一个x-windows窗口。

为了详细说明@pjz的答案,你可以使用xmessage(或任何其他可以直观地发生事情的命令):

 long-running-command; xmessage "I'm Done" 

当你的命令完成后,这将弹​​出一个小的通知窗口。

我知道screenterminal程序可以产生一个输出在虚拟屏幕停止时钟…但我不知道,如果这将实现你正在寻找什么。

Linux中的当前方法是链接文本 。 你可以通过使用dbus的shell脚本来连接它。

当terminal会话产生新的输出时,KDE的konsole可以通知你(铃声/图标变化)。 在konsole中运行索引,并附加类似“&& echo done”的内容,以便在最后得到输出(如果没有正常的话)。 redirect来自索引的常规输出。