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

问题描述 投票:0回答:7

通知中心通知将是理想的,但咆哮、弹跳码头、声音等也可以(或者如果这只能在 Terminal.app 中完成,我愿意切换回来)。 iTerm 中是否有一个选项可以打开通知,或者我应该在终端中的命令末尾输入什么?如果是后者,是否可以在流程开始后添加警报(例如,如果我意识到它需要比我最初预期的时间更长的时间,我不擅长猜测)。

macos terminal iterm iterm2
7个回答
344
投票

通知已经运行的进程:

  • 前往
    Edit
    Marks and Annotations
    Alerts
    Alert on next mark
  • 或使用快捷键:A

iTerm
会真正关注您的终端(,位于右上角)。
命令完成后,会发出通知。


要求:Shell 集成:

  • iTerm2
    Install Shell Integration
  • 注意:在 iTerm2 重新启动之前,集成不会发出通知。

用例:

我们启动了一个命令,低估了完成时间,我们不想取消或只是等待完成。


92
投票

您始终可以使用

say
命令。

通常,当您在终端内运行较长的进程并想要更新时,您只需使用此命令即可说出诸如

done
error
bazinga
之类的内容。

mvn clean install; say done 

这个命令构建了一个java spring应用程序,需要很长很长的时间,过程完成后它会说话

done


67
投票

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

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>

22
投票

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

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

记得还要在

iTerm
首选项中启用
Growl
通知。

如果您想获得给定进程的通知,您可以尝试尝试

Triggers
。您可以在配置文件设置的
Advanced
选项卡中定义触发器。通过这种方式,您可以将 Growl 通知分配给流程的特定输出(正则表达式)。

例如,您可以这样做:

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

并将触发器连接到“end-of-my-process”消息。

更新

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


12
投票

有一个名为 noti 的 OSS 工具。

您可以使用

brew install noti
轻松安装它并开始使用它,只需在命令前面加上
noti
(如
noti sleep 3
)即可。


7
投票

您还可以使用

terminal-notifier
,它使用 macOS 系统通知。要通过 Homebrew 安装它只需:

$ brew install terminal-notifier

然后,如果您想在工作/流程完成时显示通知,请使用类似的内容

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

显示如下:

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


7
投票

安装 iTerm2 shell 集成

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
© www.soinside.com 2019 - 2024. All rights reserved.