it-swarm.cn

当作业/流程完成后,如何让iTerm终端通知我?

通知中心通知是理想的,但是咆哮,弹跳底座,声音等也可以(或者如果这只能在Terminal.app中完成,我愿意转回)。在iTerm的某处可以选择打开通知,还是我应该在终端的命令末尾输入?如果是后者,一旦进程开始就可以添加警报(例如,如果我意识到它将花费比我最初预期更长的时间,我猜不好)。

70
truth1ness

在已经运行的进程上通知

捷径: A 要么:

Edit -> Marks and Annotations -> Alerts -> Alert on next mark

Spooky eye! :iTerm将密切关注您的终端(在右上角)。命令完成后,它将联系Notification Center

为什么?

我们已经启动了命令。我们低估了完成所需的时间,我们不想取消它,我们拒绝坐下来观看它。例如很久以后brew update

要求

iTerm:Shell Integration :

iTerm2 -> Install Shell Integration

请注意,在重新启动iTerm2之前,集成不会显示通知。

131
Paschalis

您可以在任何命令之后添加以下任何一项,在命令和它之间使用分号:

afplay /System/Library/Sounds/Ping.aiff -v 2

osascript -e 'beep 3'

tput bel

或者,如果您喜欢通知中心

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'

您还可以在配置文件中创建一个名为notify的别名,并在命令末尾添加该别名。所以,在您的登录配置文件中

alias notify="tput bel"

然后

sleep 10; notify

或者,如果您启动了命令并且它是“挂起”,只需键入notify并点击Enter,它将在命令结束时运行您的notify别名,例如,.

sleep 20

# wait 5 seconds before realising this will take 20 seconds
notify<Enter>
30
Mark Setchell

并且您始终可以使用say命令。

通常当您在终端内运行一个长进程并想要更新时,您只需使用此命令来说出doneerrorbazinga之类的内容。

mvn clean install; say done 

此命令构建一个Java spring应用程序,需要很长时间,并且在该过程完成后它会说出done

23
Farhan Salam

iTerm2支持Growl通知。您可以在每个配置文件设置中打开它。

Preferences…-> Profiles中选择一个配置文件。然后在Terminal选项卡中有一个选项Enable Growl Notifications

请记住在iTerm首选项中启用Growl通知。

如果您想获得给定流程的通知,可以尝试使用Triggers进行试验。您可以在配置文件设置中的Advanced选项卡中定义触发器。通过这种方式,您可以将Growl通知分配给流程的特定输出(regexp)。

你可以这样做:

$ mycommand; echo "end-of-my-process"

并将触发器连接到“我的流程结束”消息。

更新

iTerm2.com上了解有关触发器的更多信息

15
baf

有一个名为 noti 的OSS工具。

您可以使用brew install noti轻松安装它,并通过在命令前添加noti(如noti sleep 3)来开始使用它。

4
junjian.xu

您还可以使用terminal-notifier,它使用mac os系统通知。要通过Home brew安装它:

$ brew install terminal-notifier

然后,如果要在作业/过程完成时显示通知,请使用以下内容

$ <your job/process command> && echo 'Completed' | terminal-notifier -sound default

这个显示如下:

enter image description here 

您还可以更改通知的声音和图标。更多信息在github repo: https://github.com/julienXX/terminal-notifier

1
MaSza