Cómo recibir notificaciones al finalizar la ejecución de un comando en un terminal

El otro día, leyendo el excelente blog WebUpd8, descubrí una herramienta para recibir una notificación al finalizar la ejecución de un comando en el terminal, lo que puede resultar útil en los casos en los que dicha tarea puede alargarse varios minutos.Honestamente, no me parece que sea la mejor solución. Por esa razón, aquí proponemos otras alternativas, más prácticas y sencillas.

Undistract-me

La herramienta recomendada por Andrew es Unidstract-me.

Instalación en Ubuntu y derivados:

sudo add-apt-repository ppa:undistract-me-packagers/daily
sudo apt-get update
sudo apt-get install undistract-me

Para utilizarlo hay que habilitar la opción «Ejecutar comando como terminal de inicio de sesión» en el terminal de tu preferencia. En el que viene con GNOME podemos habilitar esta opción bajo Edición > Preferencias de Perfil.

Una vez instalado, cualquier comando que tarde más de 10 segundos mostrará un mensaje al finalizar.

Para instalar Undistract-me en otras distros, pueden encontrar las instrucciones aquí.

Otras alternativas

La ventaja de los métodos que se muestran a continuación son varios:

  • se ejecutan solamente cuando el usuario así lo pide
  • no precisan de la instalación de programas adicionales (por lo general, los paquetes necesarios ya vienen instalados en casi todas las distros populares)
  • si la pereza te carcome, podés convertirlos fácilmente en un script
  • son súper rápidos, no consumen recursos y son fáciles de aprender

Notify-send

Para mostrar mensajes de Notificación al estilo Ubuntu, tenés que tener instalado notify-send. Ubuntu, Linux Mint y derivados vienen con este paquete instalado por defecto. Los usuarios de Arch, pueden instalarlo desde AUR.

Luego, basta agregar && notify-send «¡Terminado!» al final del comando que queramos ejecutar. Suponiendo que el comando a ejecutar fuera cat:

cat archivo && notify-send "¡Terminado!"

Zenity

Un sistema más «complejo» de notificaciones es Zenity, con el cual podemos mostrar cuadros de diálogo con botones, etc.

Al igual que con notify-send, basta agregar && zenity –info –text=»¡Terminado!» al final del comando que queramos ejecutar. Suponiendo, una vez más, que el comando a ejecutar fuera cat:

cat archivo && zenity --info --text="Long command completed."
Un tip interesante: es posible reemplazar && por ; para agregar elementos a la cadena de comandos a ejecutar. Así, por ejemplo, cat archivo && ls quedaría cat archivo; ls.

Fuente: Webupd8


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Esteban Saracho dijo

    En teoria tambien podria funcionar esto: » cat archivo && echo -e a «, produce un bip al finalizar el comando (en chakra no funciona). Sobre el Tip (si no entendi mal), no es lo mismo «comando1;comando2» que «comando1&&comando2»; en el primer caso el comando2 se ejecuta sin importar que el comando1 haya finalizado bien, en el segundo solo se ejecuta si comando1 finalizo correctamente. Saludos y buen post, me gusto notify-send, muy práctico

  2.   pandacriss dijo

    muy util! probando…

  3.   Javi dijo

    Hola, yo suelo usar mejor esta opción:
    cat archivo; zenity –info –text=»Long command completed.»&

    Así me permite poner más de una notificación y no se bloquea el terminal hasta que pulso.

    Saludos