web-dev-qa-db-fra.com

Comment faire en sorte que le terminal iTerm m'avertisse lorsqu'un travail/processus est terminé?

Une notification dans un centre de notification serait idéale, mais un grondement, une station d'accueil, un son, etc. conviendrait également (ou si cela ne peut être fait que dans Terminal.app, je serais prêt à revenir en arrière). Existe-t-il une option quelque part dans iTerm pour activer les notifications ou est-ce quelque chose que je suis censé taper à la fin d'une commande dans le terminal? Dans ce dernier cas, est-il possible d’ajouter une alerte une fois le processus lancé (par exemple, si je réalise que le processus prendra plus de temps que prévu, je ne saurais le deviner). 

59
truth1ness

Notifier sur un processus en cours d'exécution

Raccourci: A ou:

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

Spooky eye! : iTermNAME _ gardera littéralement un œil (dans le coin supérieur droit) de votre terminal. Une fois la commande terminée, il contactera le Notification Center.

Pourquoi?

Nous avons déjà lancé la commande. Nous avons sous-estimé le temps requis pour l'achèvement, nous ne voulons pas l'annuler et nous refusons de nous asseoir et de le regarder. par exemple. un brew update après une longue période!

Exigences

iTerm: Intégration Shell:

iTerm2 -> Install Shell Integration

Notez que l’intégration n’affichera aucune notification avant le redémarrage de iTerm2.

131
Paschalis

Vous pouvez ajouter n'importe lequel des éléments suivants après n'importe quelle commande, avec un point-virgule entre celle-ci et celle-ci:

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

osascript -e 'beep 3'

tput bel

ou, si vous aimez Notification Center

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

Vous pouvez également créer un alias dans votre profil, appelé notify, et l'ajouter à la fin de votre commande. Donc, dans votre profil de connexion

alias notify="tput bel"

puis

sleep 10; notify

Ou, si vous avez lancé votre commande et qu'elle est "suspendue", tapez simplement notify et appuyez sur Enter pour exécuter votre alias notify à la fin, lorsque la commande est terminée, par exemple.

sleep 20

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

Et vous pouvez toujours utiliser la commande say.

Habituellement, lorsque vous exécutez un long processus dans le terminal et que vous souhaitez être mis à jour, vous pouvez simplement utiliser cette commande pour énoncer des choses comme done ou error ou bazinga.

mvn clean install; say done 

Cette commande crée une application de printemps Java et prend beaucoup de temps. Elle s'exprimera par la suite done une fois le processus terminé.

19
Farhan Salam

iTerm2 supporte les notifications Growl. Vous pouvez l'activer dans les paramètres de chaque profil.

Sélectionnez un profil dans Preferences…-> Profiles. Ensuite, dans l'onglet Terminal, il existe une option Enable Growl Notifications.

N'oubliez pas d'activer également les notifications iTerm dans les préférences Growl.

Si vous souhaitez recevoir une notification pour un processus donné, vous pouvez essayer d’expérimenter avec Triggers. Vous définissez les déclencheurs dans l'onglet Advanced dans les paramètres d'un profil. De cette manière, vous pouvez affecter une notification Growl à une sortie particulière de votre processus (regexp).

Vous pouvez par exemple faire:

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

Et connectez le déclencheur au message "fin de processus".

Mettre à jour

En savoir plus sur les déclencheurs sur iTerm2.com .

13
baf

Il existe un outil OSS appelé noti .

Vous pouvez facilement l'installer avec brew install noti et commencer à l'utiliser simplement en préfixant votre commande avec noti comme noti sleep 3.

3
junjian.xu

Vous pouvez également utiliser terminal-notifier, qui utilise les notifications du système Mac OS. Pour l'installer via Home Brew, il suffit de:

$ brew install terminal-notifier

Ensuite, si vous souhaitez afficher une notification lorsque votre travail/processus est terminé, utilisez quelque chose comme ceci

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

Et cet affichage comme ceci:

 enter image description here

Vous pouvez également modifier le son et l'icône des notifications. Plus d'infos dans le repo github: https://github.com/julienXX/terminal-notifier

0
MaSza