Shell 任务完成的咆哮通知

ezr*_*ock 12 bash shell growl macos

(OSX 特定)

我和许多其他人一样,经常发现自己在 shell 中启动了一个需要一两分钟才能完成的进程(例如一个大型的 svn 提交)。在那段时间里,我经常使用 alt-tab 并刷新 reddit/slashdot/wikipedia/whatever。设置一些在 shell 进程结束时发布咆哮通知的东西会很棒。

在我的理想世界中,它会像这样工作:“如果一个进程刚刚从终端中打开的选项卡中退出,则发布咆哮通知。”

其他人有这样的设置吗?

Dan*_*eck 11

您可以安装grunglnotify来执行此操作。

$ ./some_program && growlnotify Title -m Message

当然,您需要在执行命令之前考虑这一点。另一种选择(虽然我不知道如何实现)将是每个命令的 Growl 通知,这会非常烦人。


为了在您的用例中简化 grunglnotify 的使用,请编辑~/bash_profile并添加以下内容:

function long {
    $@
    /usr/local/bin/growlnotify Finished -m 'Done'
}
Run Code Online (Sandbox Code Playgroud)

现在您可以简单地long your_command(类似于sudo)。Ctrl-A将光标定位在行首,如果您(像我一样)总是先输入实际命令,然后需要添加前缀。

不幸的是,我的 bash-fu 不足以将命令添加到growlnotify消息中


根据@mankoff 对此答案的评论:

您可以在命令运行时简单地输入,然后它会被执行。我为我创建了以下函数:

function gn {
    /usr/local/bin/growlnotify Finished -m "$@"
}
Run Code Online (Sandbox Code Playgroud)

用作gn svn.

  • 你不需要在命令之前考虑它。如果在它运行时,您意识到希望在完成时收到通知,只需键入“gn foo”(或“说完成”,对于音频提示),按回车键,该命令将在当前完成时运行. (2认同)