(特定于 OSX)
我和许多其他人一样,经常发现自己在 shell 中启动一个需要一两分钟才能完成的进程(例如大型 svn 提交)。在此期间,我经常按 alt-tab 刷新 reddit/slashdot/wikipedia/whatever。如果能设置一个在 shell 进程结束时发出咆哮通知的功能就太好了。
在我理想的世界中,它会像这样工作:“如果某个进程刚刚从终端中打开的选项卡退出,则发出咆哮通知。”
还有其他人有类似的设置吗?
答案1
您可以安装发出咆哮通知去做这个。
$ ./some_program && growlnotify Title -m Message
当然,您需要在执行命令之前考虑到这一点。另一种选择(虽然我不知道如何实现)是为每个命令发出一个 Growl 通知,这会非常烦人。
为了简化您在使用案例中使用 growlnotify 的习惯,请编辑~/bash_profile
并添加以下内容:
function long {
$@
/usr/local/bin/growlnotify Finished -m 'Done'
}
现在您可以简单地long your_command
(类似于sudo
)。Ctrl-A
将光标置于行首,如果您(像我一样)总是先输入实际命令,然后需要添加前缀。
不幸的是,我的 bash-fu 不足以将命令添加到growlnotify
消息中
根据@mankoff 对这个答案的评论:
您只需在命令运行时键入内容,它就会随后执行。我为自己创建了以下函数:
function gn {
/usr/local/bin/growlnotify Finished -m "$@"
}
用于gn svn
。
答案2
您需要的是growlnotify
用于触发咆哮通知的 CLI 程序。您可以将其用作:
./script.sh;; growlnotify -m "done"
它还有一些旋钮可供您使用,growlnotify -h
用于获取更多信息
答案3
修改 Daniel Beck 的答案如果你做这个小小的改变它会变得非常好。
function long {
command=$@
$command
/usr/local/bin/growlnotify Finished -m "$command completed."
}
然后当您运行“long svn up”时,您将看到消息“svn up 完成”。
如果您同时运行许多耗时的 shell 脚本,这非常好。
答案4
使用发出咆哮通知。
ls && growlnotify -H localhost -m "message"