如何让 iTerm 终端在作业/流程完成时通知我?

一个通知中心的通知将是理想的,但咆哮,弹跳码头,声音等也将罚款(或者如果这只能在 Terminal. app 中完成,我愿意切换回来)。ITerm 中是否有打开通知的选项,或者是我应该在终端中的命令末尾键入的东西?如果是后者,是否有可能在进程启动后添加一个警报(例如,如果我意识到要花费比我最初预期的更长的时间,我就不善于猜测)。

45073 次浏览

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

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>

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

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

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

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

例如,你可以这样做:

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

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

更新

阅读更多关于 ITerm2.com触发器的信息。

并且您总是可以使用 say命令。

通常,当你在终端里面运行一个很长的进程并且想要得到更新时,你可以简单地使用这个命令来说出像 doneerror或者 bazinga这样的东西。

mvn clean install; say done

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

通知已经运行的进程:

捷径: A或:

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

Spooky eye!: iTerm将字面上保持一个眼睛(在右上角)你的终端。一旦命令完成,它将与 Notification Center联系。

为什么?

命令已经启动,完成时间被低估了,我们不想取消命令或等待它的完成。 (即长时间后的 brew update)

规定

项目名称: 壳积分法:

iTerm2 -> Install Shell Integration

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

有一个称为 Noti的 OSS 工具。

您可以很容易地安装它与 brew install noti,并开始使用它只是通过前缀您的命令与 noti喜欢 noti sleep 3

你也可以使用使用 mac os 系统通知的 terminal-notifier:

$ brew install terminal-notifier

然后,如果您想显示通知时,您的作业/进程完成使用这样的东西

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

这个展示是这样的:

enter image description here

你也可以改变声音和图标的通知。更多信息在 github 回购: https://github.com/julienXX/terminal-notifier

安装 iterm2壳积分法

curl -L https://iterm2.com/shell_integration/install_shell_integration_and_utilities.sh | bash

执行你的命令并连接注意力应用程序,例如。

./task && ~/.iterm2/it2attention once

一旦任务完成,iTerm 应用程序就会弹出它的图标。

你还有其他注意力选择:

$ .iterm2/it2attention -h
Usage:
it2attention start
Begin bouncing the dock icon if another app is active
it2attention stop
Stop bouncing the dock icon if another app is active
it2attention once
Bounce the dock icon once if another app is active
it2attention fireworks
Show an explosion animation at the cursor