[原创小工具] 完美结合CLI和GUI的notify!

作为一个大忙人,相信你经常开N个终端干活;作为一个CLI控,相信你也经常使用wget之类的工具下载东西。

你是否希望能在make完成、wget完成之后能有一个工具来通知你呢?为了追求效率总不可能盯着终端,或者经常切来切去地看吧?

现在隆重推出----notify:一个完美结合CLI和GUI的小工具,帮助CLI控们在做一些消耗时间的任务时,能在第一时间得到有效的提醒。

嗯,有图有真相:

应用场景:sudo apt-get update

这是用Deiban系的Linuxer经常执行的一条命令,而且会花点时间。何不用notify在update完后告诉你呢?

很简单,这样就用就行了:

notify sudo apt-get update

[![Notify

01](/media/uploads/2010/07/notify-01.png)](/media/uploads/2010/07/notify-01.png)

执行完这条命令后,你就可以去干其他事情了。

当update完成后,notification机制能非常有意思地提醒你:Cool~"sudo apt-get update" finished!

[![Notify

02](/media/uploads/2010/07/notify-02.png)](/media/uploads/2010/07/notify-02.png)

同理,如果你在./configure,make等很消耗时间的任务上,也可以这么做。

假设这次失败了,notify会说:Oh No! "./configure" failed!

[![Notify

02](/media/uploads/2010/07/notify-03.png)](/media/uploads/2010/07/notify-03.png)

哈哈,是不是很有意思呢?

实际上这只是一个非常简单的小脚本,但是对我来说非常有用。

喜欢的话,到这个地址下载吧:http://github.com/tualatrix/tools/raw/master/bin/notify

下载后直接放在$PATH路径下即可,另外建议在~/.bashrc中加入

complete -o filenames -F _root_command notify

这样bash补全的时候会有比较好的效果。

Enjoy!

37 Comments

这个的确看上去不错
很短的一句。。

原来只有一行…… Bash 威武……

linux让生活更方便,我刚想试这段代码,却发现刚刚为了打游戏,重启进的windows

嗯,很方便的小工具!

借问一句,如何像截图中那样将

TualatriX@TualatriX-laptop ~ $

这一行设置上颜色呢?

多谢!

TualatriX 回复 @salad

看这篇文章:http://imtx.cn/archives/1298.html

salad 回复 @TualatriX

多谢指点,呵呵

Ricky

不会编这么高级的程序,曾经为了在服务器做完工作后发一封邮件给我,达到同样的目的,就是没有这么优美

TX用中文了?以前看你截图的系统环境都是英文的,还以为你 :(

TualatriX 回复 @低调

我中文用英文都用,怎么了?

主席V5了...需求阿

恩,很好!不过ubuntu only

还是邮件美,139的有短信通知 :)

适合服务器

simsilver 回复 @delectate

notify-send 别的发行版也有啊,只有图标是ubuntu的,可以自己整个对号或叉来用

Melon

自娱自乐,哈哈哈哈哈哈

原来是要先装notify-send的,还好对于我这种菜鸟还能够在Google找到。
如果你遇到:
/bin/notify: line 6: notify-send:找不到命令
/bin/notify: line 7: notify-send:找不到命令

那么请先安装:notify
sudo apt-get install libnotify-bin

需要安装libnotify-bin包·
另外一直怨念不能点击通知来聚焦对应的程序(比如执行完make的那个终端)。

嗯嗯,很有创意嘛~

主席,我想问下你对 notify-send 中用 <span></span>熟么?

TualatriX 回复 @maonx

不熟,是用来加粗某些字体用的吧?

rem1x

充分利用了$* && ||

建议通过 growl 加入对 OS X 的支持。谢谢!

TualatriX 回复 @Tianyi Cui

很好的建议,已经实现了。

用了才知道,我这个10.04竟然没有libnotiify-bin,要apt了才可以

呃,这个以什么协议发布的?想改之……放心,开源是必定的

TualatriX 回复 @delectate

我加上版权信息了,你就放心地去改吧。

低碳版:

#!/bin/bash
$*
notify-send -t 0 "DONE($?): $*"

源自:http://github.com/jjthrash/jimmyconf/blob/master/bin/n

TualatriX 回复 @weakish

不错,这个真的很低碳。而且出世时间比我的早多了。

好棒,对了,您的RSS好像被墙了。

delectate 回复 @HelloWorld!

feedburner的rss全部阵亡

Grissiom

哈哈,加一个 KDE 版的:

http://gitorious.org/mles/mles/blobs/master/runnnotify.sh

感觉先根据命令执行情况生成 message 然后再在后面一并处理比较好~

davix 回复 @Grissiom

多謝Grissiom,很好用

报告一下,好像只对原生的命令有用,而对alias的命令无效……

$ notify update
/bin/notify: line 14: update:找不到命令

$ type update
update 已被别名为“sudo apt-get update”

Jesse

那两个图标怎么弄呢?
黑漆漆的,没个图标,真不好看

Jesse

原来还得full path. /usr/share/icons/Humanity/emblems/32/emblem-cool.png

Grissiom

写了一个可以远程通知的版本,呵呵:

http://blog.csdn.net/grissiom/archive/2010/08/10/5802122.aspx

1. 下载地址需更新了 http://github.com/tualatrix/tools/raw/master/bin/notify
2. 觉得这个应该做成bashrc里的函数的形式,以支持bash alias。

比如说我的bashrc里就写了:

notify () {
eval $* && \
growlnotify -m "Cool~ \"$*\" finished!" || \
growlnotify -m "Oh No! \"$*\" failed!"
}

Leave a Comment