J'exécute une série de commandes sur la ligne de commande qui prend environ vingt minutes. J'aimerais voir une sorte de notification sur mon Mac une fois celle-ci terminée. Je n'ai donc pas besoin de surveiller le terminal une fois celui-ci terminé. Y a-t-il un moyen de faire cela?
$ svn update . && ant clean build start && *notify_me_somehow*
Modifier :
Je pourrais utiliser xclock
mais cela ressemble à un bidouillage. Idéalement, je pourrais envoyer la notification n'importe où, comme mon téléphone, mon écran, etc.
grownlnotify
.Réponses:
(svn update . && ant clean build start && say done) || say error
la source
&&
pour chaîner plusieurs commandes et les encapsuler avec un collectif||
ou une instruction afin de générer une erreur. +1 en effetalias -g sd='; say done'
. Cela signifie que je n'ai qu'à ajoutersd
à n'importe quelle commande, et je serai averti.(echo alik && echo Orly && say done) || say error
say -v Zarvox
ce qui fait sauter tout le monde dans les environs, ceci est une notification légèrement moins alarmante.Sous Mac OS 10.8, vous pouvez vous envoyer des messages au centre de notifications (similaire à Growl mais intégré à Mac OS).
Consultez « Envoyer une alerte au Centre de notifications à partir de la ligne de commande sous OS X » pour voir comment installer une gemme Ruby qui vous permettra d'envoyer des notifications à partir de la ligne de commande. Pour simplifier le cas d'utilisation courant consistant à se soucier du fait que quelque chose est fait dans le terminal, ajoutez un alias à votre fichier .bash_profile:
Ensuite, vous pouvez simplement faire:
Une fois la tâche longue terminée, vous obtiendrez une jolie fenêtre contextuelle modale qui persistera jusqu'à ce que vous cliquiez dessus:
la source
brew install terminal-notifier
. Ensuite, vous pouvez simplement écriremyCommand && terminal-notifier -message 'finished'
. Testé sur OS X Yosemite (10.10.1).myCommand; terminal-notifier -message 'finished'
sinon la notification ne sera pas affichée en cas d'myCommand
échec.say
commande, par exemplemy command ; terminal-notifier -message 'finished' ; say finished
Utilisez Growl .
Dans le
.dmg
fichier, recherchez les extras, il y a un binaire growlnotify. Installez-le, quelque chose comme dans/usr/local/bin
. Ensuite, vous pouvez utiliser cette commandepour afficher un popup, comme ça:
la source
Depuis Mac OS X Lion 10.7, Terminal dispose de nouveaux indicateurs d’état pour résoudre les problèmes suivants:
Dans les onglets:
Activité: un indicateur d'activité (indicateur de progression en rotation) est affiché lorsqu'il y a eu une sortie récente sur le terminal. Cela vous permet de voir s'il est actuellement occupé ou s'il a terminé un long processus. (Ou bien sûr, vous pouvez l'utiliser pour indiquer quand il a commencé à produire une sortie après avoir effectué un travail silencieux pendant un certain temps.)
Non lu: un point de suspension "…" est affiché pour indiquer un nouveau texte non lu dans les onglets d'arrière-plan. Lorsque vous sélectionnez l'onglet, l'indicateur est effacé.
Alerte: une "cloche" est affichée pour indiquer quand un BEL a été écrit dans des onglets ou des fenêtres en arrière-plan. En outre, le terminal affiche un badge rouge sur l'icône de l'application, indiquant le nombre d'alertes / sonneries "non lues" dans tous les terminaux. Si le terminal lui-même est à l’arrière-plan, il affiche également l’icône Dock lorsqu’une sonnerie est jouée.
Dans les icônes Dock de la fenêtre réduites:
Activité: l'activité est indiquée en affichant le nom du processus de premier plan.
Non lu: le texte non lu est indiqué par des points de suspension.
Les fenêtres de terminal réduites affichent le contenu en direct dans leurs icônes de Dock. Cela peut être utilisé pour voir s'il y a une activité, ou même pour déterminer ce que fait le terminal, si le résultat recherché est identifiable (par exemple, un affichage "supérieur" est assez facile à reconnaître, même pour les petites tailles). Ceci est particulièrement utile lorsque le grossissement du Dock est activé ou que vous avez de la place pour un grand Dock.
En outre, vous pouvez afficher quelque chose dans le terminal pour attirer votre attention (ce qui serait visible même dans les fenêtres réduites). Par exemple:
Afficher un grand astérisque:
banner \*
Inverser l'affichage:
printf '\e[?5h'
Peignez l'affichage en rouge:
tput setab 1; tput clear
Asseyez-vous en boucle en faisant clignoter l'écran:
while true; do printf '\e[?5h'; sleep 1; printf '\e[?5l'; sleep 1; done
Il existe également des codes d'échappement pour manipuler les fenêtres (déplacement, définition de la taille, zoom, réduction, etc.). Vous pouvez agrandir la fenêtre du terminal, par exemple:
Voir "Manipulation de la fenêtre" sur http://invisible-island.net/xterm/ctlseqs/ctlseqs.html pour plus de détails.
Une autre approche consiste à utiliser AppleScript pour afficher une alerte dans une fenêtre séparée:
la source
Je sais que je suis en retard par rapport à la question, mais je pense qu'il manque un petit élément qui pourrait être utile. J’ai trouvé que, même si c’est bien, avoir une conversation terminale avec vous n’est pas vraiment fonctionnel. Quoi de mieux est quelque chose de plus subtil comme celui-ci:
Comme Chris l'a fait remarquer, Lion a ajouté de petits badges de notification lorsqu'un BEL est lancé. Vous pouvez le lancer vous-même avec la commande:
Donc, si vous travaillez en arrière-plan et souhaitez recevoir une notification à la fin, vous pouvez essayer quelque chose comme:
Cela exécute la commande ping en tant que tâche d’arrière-plan (le blocage et l’accomplissement de cette tâche) et lui permet de lancer une alerte simple à la fin. Historiquement, BEL a été utilisé pour émettre ce bip sonore [horrible]. Cependant, Lion l'a remplacé avec goût par l'effet sonore "commande non valide", un badge de notification et l'icône du terminal qui rebondit deux fois dans le dock.
la source
printf '\a'
serait équivalent àtput bel
. Notez que le terminal ne renvoie pas l'icône du Dock si l'onglet à l'origine de l'alerte est actuellement actif.Je présente dans cette réponse deux choses:
afplay
, qui lit les fichiers sonores , pour la notification.J'ai ce script,
~/bin/donebeep
:Cela joue un son différent selon que l'argument est 0 ou non. J'ai alors un alias:
(Qu'ils aient le même nom est sans importance et probablement une mauvaise idée.)
Pour l'utiliser dans votre exemple
svn update . && ant clean build start; donebeep
,. Notez que j'utilise;
plutôt que de&&
sorte qu'il puisse m'avertir en cas d'échec ou de succès.Avant d’ apprendre
afplay
, j’avais l'habitudesay
de parler. Le rôle de adonebeep
été joué par ce script:Ce script prononce directement le code de sortie au lieu d’avoir deux messages différents. Il mentionne également le nom du répertoire en cours (pour aider à préciser quelle tâche est effectuée), et peut recevoir un texte supplémentaire à dire en transmettant des paramètres à l'alias (c'est pourquoi il contient l'alias
"$@"
). Notez la fin&
afin d'éviter d'attendre la fin du discours avant de recevoir une invite.La page de manuel pour
afplay
est incomplète;afplay -h
liste toutes les options:la source
Vous pouvez également utiliser la commande build in say pour la notification, par exemple: say "ant: build: done". Voir: l'homme dit dans le terminal.
la source
Je crée un outil simple qui fait exactement cela. https://github.com/vikfroberg/brb
Installation
Node.js doit être installé: http://nodejs.org
Instructions
la source
J'ai écrit
ntfy
exactement dans ce but. Il est multi-plateforme et peut automatiquement envoyer des notifications lorsque les commandes longues sont terminées.Si vous possédez Python
pip
(la plupart des distributions Linux et MacOS l’ont), voici comment l’installer et activer les notifications automatiques:Découvrez-le à http://ntfy.rtfd.io
En plus de cela, il peut aussi:
la source
iTerm2 a un mécanisme intégré pour recevoir des notifications, mais vous devez installer l’ intégration Shell .
Lorsque vous lancez une commande longue, sélectionnez:
Edition> Marques et annotations> Alertes> Alerte sur la marque suivante (
⌥Option
+⌘Command
+A
).Lorsque l'invite de commande revient, vous pouvez choisir entre:
la source
Ubuntu fournit l’alias suivant dans ~ / .bashrc:
Avec cela, vous pouvez ensuite faire des choses comme:
Peut-être y a-t-il un équivalent
notify-send
dans Mac OSX? J'ai vu des fenêtres popup similaires sous Mac et Ubuntu.la source
notify-send
à Mac OS X.Mon problème avec les sons et les fenêtres modales est que je ne peux pas dire d'où ils viennent. Je travaille actuellement avec un tas d'espaces, et parfois plus de 20 fenêtres de terminal.
Ma solution est portable vers le système Unix et devrait fonctionner avec tout ce qui supporte les séquences d'échappement Ansi. Cette solution fonctionne avec Snow Leopard et fonctionnera probablement avec des versions plus anciennes de Terminal.
Une seule ligne dans .bash_profile
Décomposer cela:
Si vous n'aimez pas le rouge, la couleur d'arrière-plan des codes d'échappement Google Ascii. Notez que cela ne change pas tout l'écran en rouge, mais tout ce qui est produit après la fin de la commande.
la source
J'ai fait un script pour résoudre ce qui est ici . Vous n'avez besoin d'aucun logiciel supplémentaire pour cela. Installation:
brew install akashaggarwal7/tools/tsay
Utilisation:
sleep 5; tsay
N'hésitez pas à contribuer!
la source
Voici ma fonction bash (il suffit de la mettre n'importe où dans votre
~/.bashrc
ou~/.zshrc
:Pour l'utiliser:
watch echo 'hi there'
Vous pouvez également personnaliser le son de notification comme indiqué ici: https://apple.stackexchange.com/a/115373/9622
la source
Je fais ce genre de chose tout le temps. Ma ligne de commande pourrait ressembler à
Si les commandes
bin/setup
et sebundle install
terminent correctement, j'entends la voix système / dictée dire "Tout est fait". Si l'une des deux premières erreurs sort, la&&
chaîne ne sera pas suivie et tout ce que j'entendrai sera "Terminé".la source
Vous pouvez utiliser la
osascript
commande intégrée pour exécuter un script Apple qui affiche une notification, par exemple:Vous pouvez l'enchaîner avec un simple point-virgule, par exemple
la source