Le lieu où je travaille a des commandes qui prennent beaucoup de temps à exécuter.
Existe-t-il une commande / un utilitaire que je peux utiliser pour me prévenir lorsque l'exécution de la commande est terminée? Ce pourrait être une fenêtre popup ou peut-être un peu de son.
command-line
unix
process
notifications
Utkarsh Sinha
la source
la source
fg;say "Job finished"
cela fonctionnerait. Mais ... y a-t-il moyen de l'automatiser davantage - c.-à-d. Sonner ou avertir après l'achèvement de tout travail nécessitant plus d'un seuil à la minute près? Existe-t-il une variable shell, par exemple dans bash, le temps écoulé de la dernière commande?Réponses:
Généralement, si vous le savez avant d' exécuter la commande, vous pouvez simplement le démarrer avec:
Ceci exécutera la commande une
command-after
fois la commande précédente terminée (quel que soit son code de sortie). Le&
va le démarrer en arrière-plan.Si vous vous souciez d'une sortie réussie ou échouée, utilisez respectivement:
Si la commande a déjà été lancée, vous pouvez utiliser le contrôle du travail pour le suspendre, puis retournez-le au premier plan en le
fg
chaînant avec votre notification:Maintenant… ce que vous voulez faire après cela dépend de votre environnement.
Sur n'importe quel système , vous pouvez "faire sonner" la sonnerie du terminal . Dépend de votre système exact ce qui fonctionne vraiment (BSD vs. GNU Linux, etc.), mais
tput bel
devrait le faire. Cependant, je ne pouvais pas le tester de manière fiable maintenant. Recherchez "sonnerie" pour en savoir plus.Sur Mac OS X , vous pouvez utiliser AppleScript pour faire apparaître une boîte de dialogue du Finder:
Vous pourriez le faire dire quelque chose à vous:
Ou vous pouvez utiliser le système de notification de Mountain Lion:
Dans GNOME , vous
zenity
pouvez afficher une boîte de dialogue GTK, appelée à partir de la ligne de commande. Voir aussi cette question de débordement de pile: affichage d'une boîte de message à partir d'un script bash sous linux . Il peut être installé via votre gestionnaire de paquets préféré.Certaines distributions pourraient avoir
xmessage
. Il existe spécifiquement pour les environnements GTKgxmessage
.Sur les environnements de bureau qui implémentent la spécification de notifications de postes de travail , tels que Ubuntu et GNOME , il existe un système de notification avec lequel vous pouvez déclencher
notify-send
(en partielibnotify
).KDE utilise
kdialog
par exemple:la source
(command; command-after) &
?Sur les systèmes de type Unix, vous pouvez faire sonner le son:
la source
tput bel
J'ai créé un outil simple, pour MacOS X, qui fait exactement cela. https://github.com/vikfroberg/brb
Installation
Instructions
la source
Pour obtenir une notification sonore, vous pouvez utiliser
spd-say "Some text"
. Exemple:la source
sudo apt-get install speech-dispatcher
. Ou utilisez des alternatives askubuntu.com/questions/501910/…Je viens de commencer à utiliser notifu pour les notifications de bureau de Cygwin. C'est une application de notification en ligne de commande pour Windows.
Exemple:
la source
J'ai écrit
ntfy
exactement dans ce but. Il est multi-plateforme et peut envoyer automatiquement 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
Pour Linux, il existe un truc astucieux pour le faire automatiquement sans avoir à taper une commande de notification à chaque fois.
Installez d'abord Autokey. Cela aide à définir des actions pour différentes frappes.
Définissez maintenant une nouvelle phrase dans Autokey et affectez le raccourci clavier à Alt + Entrée. Ajouter cette phrase:
Notez qu'une nouvelle ligne après la première ligne est importante.
Ajoutez également un filtre de fenêtre. J'utilise guake et terminal. Incluez tout autre terminal que vous utilisez.
Vous avez terminé!!
Maintenant, chaque fois que vous avez besoin de recevoir des notifications pour une commande, exécutez-la en utilisant Alt + Entrée au lieu de Entrée / Retour.
Source: http://dotpad.blogspot.in/2014/12/notification-when-command-finished.html
la source
Bien que d’autres réponses aient déjà couvert la plupart des moyens d’obtenir des notifications sur un travail terminé, je tiens à vous donner deux centimes puisque vous avez posé votre question dans le format suivant:
J'ai le même problème. Parfois, quelque chose peut durer 15 minutes.
J'ai la fonction suivante dans mon .bashrc:
Cela utilise l'application Pushover afin de transmettre une notification à mon téléphone. De cette façon, je peux aller déjeuner ou participer à une réunion tout en étant averti des tâches que j'ai commencées sur mon ordinateur avant de partir.
Je l'utilise de la manière suivante:
Donc, si la commande retourne un code de sortie correct, le premier push sera exécuté. En cas d'erreur, le second sera exécuté.
Ofc vous devez créer un utilisateur sur Pushover, et enregistrer une application pour envoyer des notifications à partir de https://pushover.net/
espérons que cela a aidé!
la source
Si vous utilisez csh ou tcsh comme shell interactif, vous pouvez utiliser la
notify
commande suivante:Vous pouvez obtenir un effet similaire en bash avec
set -b
ouset -o notify
.Cela ne répond probablement pas à vos exigences, car tout ce qu’il fait est d’imprimer un message; Je ne pense pas qu'il peut être configuré pour ouvrir une fenêtre ou sonner la cloche.
la source
Sur les systèmes avec 'awk' try
était le seul à travailler pour moi.
la source
\a
( réponse de Trinth ).Si vous utilisez
npm
alors node-notifier, fournissez une solution multiplate-forme .Aperçu
la source
Si seulement j'avais remarqué ce fil il y a des années. Ma solution était essentiellement la même que celle de Slhck, mais j'ai écrit un script. Je l'utilise tout le temps. Poster ici pour le partager.
Une petite explication: la chaîne
"\x1b]0;$msg\a"
est la séquence d'échappement ANSI pour placer le message dans la barre de titre de la fenêtre à partir de laquelle il a été exécuté. Je trouve assez pratique parfois de pouvoir voir de quelle fenêtre provient le message.la source
Cela arrive donc assez tard, mais j'ai commencé à utiliser un système pour le faire: j'ai un script bash qui exécute n'importe quelle commande qui lui est transmise par la suite.
http://somesh.io/2017/02/19/get-notified-when-long-commands-are-done-executing-on-ubuntu/
et puis je commence simplement par n
la source
Une autre possibilité consiste à utiliser
alert
Works sur Linux.Il donne une notification comme dans l'image. notification d'alerte
la source
J'ai créé une application qui enverra une notification à votre téléphone Android à la fin d'un processus pour que vous n'ayez pas à être connecté à votre ordinateur.
Installez, puis ajoutez
;notifier.sh
à la fin de votre commande.Par exemple, si votre commande était
make install
, vous feriez votre commande:make install; notifier.sh
https://notifier.sh
https://play.google.com/store/apps/details?id=sh.notifier
la source