El lugar en el que trabajo tiene comandos que tardan mucho en ejecutarse.
¿Hay algún comando / utilidad que pueda usar para notificarme cuando finalice la ejecución del comando? Podría ser una ventana emergente o quizás un pequeño sonido.
command-line
unix
process
notifications
Utkarsh Sinha
fuente
fuente
fg;say "Job finished"
funcionaría. Pero ... ¿hay alguna manera de que pueda automatizarse aún más? ¿Hay una variable de shell, por ejemplo, en bash, que es el tiempo transcurrido del último comando?Respuestas:
En general, si sabe esto antes de ejecutar el comando, puede comenzarlo con:
Esto ejecutará
command-after
después de que el comando anterior haya salido (independientemente de su código de salida). La&
iniciará en segundo plano.Si le importa una salida exitosa o fallida, use respectivamente:
Si el comando ya se ha iniciado, puede usar el control de trabajo para suspenderlo y luego devolverlo al primer plano
fg
con su notificación encadenada:Ahora ... lo que quieras hacer después de esto depende de tu entorno.
En cualquier sistema , puede "tocar" el timbre del terminal . Depende de su sistema exacto lo que realmente funciona (BSD vs. GNU Linux, etc.), pero
tput bel
debería hacerlo. Sin embargo, no podría probarlo de manera confiable en este momento. Busque "campana de llamada" para obtener más información.En Mac OS X , puede usar AppleScript para abrir un cuadro de diálogo del Finder:
Podrías hacer que te dijera algo:
O puede usar el sistema de notificación de Mountain Lion:
En GNOME ,
zenity
puede mostrar un cuadro de diálogo GTK, llamado desde la línea de comando. Véase también esta pregunta desbordamiento de pila: muestra un cuadro de mensaje de un script bash en Linux . Se puede instalar a través de su administrador de paquetes favorito.Algunas distribuciones pueden tener
xmessage
. Específicamente para entornos GTK, los haygxmessage
.En entornos de escritorio que implementan la Especificación de notificaciones de escritorio , como Ubuntu y GNOME , hay un sistema de notificación con el que puede activar
notify-send
(parte delibnotify
).KDE usa
kdialog
, por ejemplo:fuente
(command; command-after) &
?En sistemas similares a Unix, puede tocar el timbre audible:
fuente
tput bel
Creé una herramienta simple, para MacOS X, que hace exactamente esto. https://github.com/vikfroberg/brb
Instalación
Instrucciones
fuente
Para obtener una notificación de sonido que puede usar
spd-say "Some text"
. Ejemplo:fuente
sudo apt-get install speech-dispatcher
. O utilice las alternativas askubuntu.com/questions/501910/…Acabo de comenzar a usar notifu para las notificaciones de escritorio de Cygwin. Es una aplicación de notificación de línea de comandos para Windows.
Ejemplo:
fuente
Escribí
ntfy
exactamente para este propósito. Es multiplataforma y puede enviar notificaciones automáticamente cuando finalizan los comandos de ejecución larga.Si tiene Python
pip
(la mayoría de las distribuciones de Linux y MacOS lo tienen), aquí le mostramos cómo instalarlo y habilitar las notificaciones automáticas:Compruébalo en http://ntfy.rtfd.io
Además de eso, también puede:
fuente
Para Linux, hay un ingenioso truco para hacer esto automáticamente sin tener que escribir un comando de notificación cada vez.
Primero instale autokey. Esto ayuda a definir acciones para diferentes pulsaciones de teclas.
Ahora, defina una nueva frase en autokey y asigne la tecla de acceso rápido como Alt + Enter. Agrega esta frase:
Tenga en cuenta que una nueva línea después de la primera línea es importante.
Además, agregue un filtro de ventana. Yo uso guake y terminal. Incluya cualquier otra terminal que use.
¡Ya terminaste!
Ahora, cada vez que necesite recibir notificaciones para un comando, ejecútelo usando Alt + Enter en lugar de Enter / Return.
Fuente: http://dotpad.blogspot.in/2014/12/notification-when-command-finished.html
fuente
Aunque otras respuestas ya cubrieron la mayoría de las formas de recibir notificaciones sobre un trabajo terminado, quiero dar mis dos centavos ya que usted hizo su pregunta en el siguiente formato:
Tengo el mismo problema. A veces algo puede funcionar durante 15 minutos.
Tengo la siguiente función en mi .bashrc:
Esto usa la aplicación Pushover para enviar una notificación a mi teléfono. De esta manera puedo ir a almorzar o ingresar a una reunión y aún así recibir notificaciones sobre los trabajos que comencé en mi computadora antes de irme.
Lo uso de la siguiente manera:
Entonces, si el comando devuelve un código de salida correcto, se ejecutará la primera inserción. En caso de error, se ejecutará el segundo.
Ofc necesita crear un usuario en Pushover y registrar una aplicación para enviar notificaciones desde https://pushover.net/
Espero que esto haya ayudado!
fuente
Si usa csh o tcsh como su shell interactivo, puede usar el
notify
comando:Puede lograr un efecto similar en bash con
set -b
oset -o notify
.Esto probablemente no cumpla con sus requisitos, ya que todo lo que hace es imprimir un mensaje; No creo que se pueda configurar para abrir una ventana o tocar el timbre.
fuente
En sistemas con prueba 'awk'
fue el único que trabajó para mí.
fuente
\a
( la respuesta de Trinth ).Si está utilizando
npm
, el nodo-notificador proporciona una solución multiplataforma .Avance
fuente
Ojalá hubiera notado este hilo hace años. Mi solución era esencialmente la misma que la de slhck, pero escribí un script. Lo uso todo el tiempo. Publicando aquí para compartirlo.
Una pequeña explicación: la cadena
"\x1b]0;$msg\a"
es la secuencia de escape ANSI para colocar el mensaje en la barra de título de la ventana desde la que se ejecutó. A veces me resulta bastante útil poder ver de qué ventana proviene el mensaje.fuente
Esto llega bastante tarde, pero comencé a usar un sistema para hacer esto: tengo un script bash que ejecuta cualquier comando que se le pase después
http://somesh.io/2017/02/19/get-notified-when-long-commands-are-done-executing-on-ubuntu/
y luego simplemente antepongo n
fuente
Otra posibilidad es usar
alert
, Works on Linux.Da una notificación como en la imagen. notificación de alerta
fuente
Hice una aplicación que enviará una notificación a su teléfono Android cuando finalice un proceso para que no tenga que estar atado a su computadora.
Instale, luego agregue
;notifier.sh
al final de su comando.Por ejemplo, si su comando fuera
make install
, haría su comando:make install; notifier.sh
https://notifier.sh
https://play.google.com/store/apps/details?id=sh.notifier
fuente