GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hay alguna forma de mostrar la notificación del script bash en Ubuntu?

Si está utilizando el nuevo sistema de notificación en Jaunty, desea que notificar-enviar comando

notify-send - a program to send desktop notifications

SYNOPSIS

With notify-send you can sends desktop notifications to the user via
a notification daemon from the command line.  These notifications can be
used to inform the user about an event or display some form of information
without getting in the user's way.

OPTIONS

-u, --urgency=LEVEL
Specifies the urgency level (low, normal, critical).

-t, --expire-time=TIME
    Specifies the timeout in milliseconds at which to expire the notification.
-i, --icon=ICON[,ICON...]
    Specifies an icon filename or stock icon to display.
-c, --category=TYPE[,TYPE...]
    Specifies the notification category.

Encontré otra forma, a través de Zenity

echo 'message:hi' | zenity --notification --listen

o así:

zenity --notification --text "System update necessary!" 

(Esto también tiene la ventaja de que ya está instalado en Ubuntu).


Probado en Ubuntu 14.04, 16.04, 18.04, 20.04. Capturas de pantalla de Ubuntu 20.04.

  1. [FUNCIONA BIEN] Notificación emergente que se cierra automáticamente después de 4 a 10 segundos (¿de alguna manera relacionado con la configuración de tu sistema operativo?):

    notify-send "Hello world"
    


    Fuente:https://superuser.com/a/31919/425838

  2. Ventana emergente con botones para hacer clic:

    1. La ventana NO se enfoca automáticamente: Fuente:yo mismo; nota:para versiones anteriores de Ubuntu basadas en Unity, como 16.04, -t se ignora para todos los valores excepto 0, qué estúpido. :(. Para versiones más nuevas de Ubuntu basadas en Gnome, como 18.04 o 20.04, -t se ignora por completo. Por lo tanto, en versiones anteriores de Ubuntu basadas en Unity, como 16.04, usando -t 0 hace que aparezcan los botones, pero en las versiones más nuevas basadas en Gnome, NO lo hace. Eso significa que para la captura de pantalla de Ubuntu 20.04 que se muestra a continuación, el comportamiento y el aspecto de notify-send -t 0 "Hello world" es exactamente idéntico a notify-send "Hello world" arriba.

      notify-send -t 0 "Hello world"
      

      En Ubuntu 18.04 o 20.04 o posterior, simplemente agregue -u critical al comando en su lugar para que permanezca abierto indefinidamente hasta que haga clic en cualquier parte de él! :

      notify-send -u critical "Hello world"
      


      Fuente:comentario de @lucidbrot debajo de esta respuesta, además de mis propias pruebas.

    2. O La ventana SÍ obtiene enfoque automático:

      zenity --info --title "Hello" --text "World"
      

      Nota:la ventana NO se cerrará hasta que haga clic en OK botón.

      Fuente:https://askubuntu.com/a/804475/327339

  3. [MI FAVORITO] La ventana se cierra automáticamente después de los --timeout especificados en segundos, ¡O después de hacer clic en el botón "Aceptar"!

    zenity --info --title "Hello" --text "World" --timeout=2
    

    Nota:la ventana se cerrará automáticamente después del tiempo de espera especificado anteriormente, ¡en segundos!

    Fuente:yo mismo leyendo las páginas man:man zenity

  4. [muy feo]

    xmessage 'hello world'
    

    Nota:la ventana NO se cerrará hasta que haga clic en ok botón.

    Fuente:http://www.linux-commands-examples.com/xmessage

También reproduce sonidos

  1. Si también desea reproducir sonidos, junto con la ventana emergente, para indicar la finalización de un comando o algo así, vea mi otra respuesta aquí:AskUbuntu.com:¿Cómo hacer un sonido una vez que se completa un proceso?

Linux
  1. Canalizar hacia/desde el portapapeles en el script Bash

  2. Script bash:usar el comando de script desde un script bash para iniciar sesión

  3. Abra Vim desde dentro de un script de shell Bash

  4. archivo de creación atómica si no existe desde el script bash

  5. Llame al script de Python desde bash con argumento

¿Obtener ruta completa desde dentro de Bash Script?

Bash Script para Center Fortune/texto de Stdin/pipe?

¿Está creando una secuencia de comandos para mostrar una notificación cuando haya actualizaciones disponibles?

Cómo enviar notificaciones de escritorio en Ubuntu usando notificar-enviar

Ejecutar script bash desde URL

¿Hay alguna forma de convertir de UTF8 a ISO-8859-1?