GNU/Linux >> Linux Esercitazione >  >> Linux

C'è un modo per mostrare la notifica dallo script bash in Ubuntu?

Se stai utilizzando il nuovo sistema di notifica in Jaunty, vuoi che notifica-invia 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.

Trovato un altro modo, attraverso Zenity

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

o così:

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

(Questo ha anche il vantaggio di essere già installato su Ubuntu.)


Testato su Ubuntu 14.04, 16.04, 18.04, 20.04. Screenshot da Ubuntu 20.04.

  1. [FUNZIONA BENE] Notifica popup che si chiude automaticamente dopo 4~10 secondi (in qualche modo legata alle impostazioni del tuo sistema operativo?):

    notify-send "Hello world"
    


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

  2. Finestra popup con pulsanti da cliccare:

    1. La finestra NON ottiene la messa a fuoco automatica: Fonte:me stesso; nota:per versioni precedenti di Ubuntu basate su Unity, come 16.04, -t viene ignorato per tutti i valori tranne 0:che stupidaggine. :(. Per le versioni più recenti di Ubuntu basate su Gnome, come 18.04 o 20.04, -t viene ignorato del tutto. Pertanto, nelle versioni precedenti di Ubuntu basate su Unity, come la 16.04, utilizzando -t 0 fa apparire i pulsanti, ma nelle versioni più recenti basate su Gnome NON lo fa. Ciò significa che per lo screenshot di Ubuntu 20.04 mostrato di seguito, il comportamento e l'aspetto di notify-send -t 0 "Hello world" è esattamente identico a notify-send "Hello world" sopra.

      notify-send -t 0 "Hello world"
      

      Su Ubuntu 18.04 o 20.04 o successivo, basta aggiungere -u critical al comando invece per far sì che rimanga aperto indefinitamente fino a quando non fai clic su un punto qualsiasi! :

      notify-send -u critical "Hello world"
      


      Fonte:commento di @lucidbrot sotto questa risposta, oltre ai miei test.

    2. OPPURE La finestra ottiene la messa a fuoco automatica:

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

      Nota:la finestra NON si chiuderà finché non fai clic su OK pulsante.

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

  3. [I MIEI PREFERITI] La finestra si chiude automaticamente dopo il --timeout specificato in pochi secondi, OPPURE dopo aver fatto clic sul pulsante "OK"!

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

    Nota:la finestra si chiuderà automaticamente dopo il timeout specificato sopra, in secondi!

    Fonte:io stesso che leggo le pagine man:man zenity

  4. [super brutto aspetto]

    xmessage 'hello world'
    

    Nota:la finestra NON si chiuderà finché non fai clic su okay pulsante.

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

Riproduci anche suoni

  1. Se vuoi riprodurre anche suoni, insieme alla finestra popup, per indicare il completamento di un comando o qualcosa del genere, vedi la mia altra risposta qui:AskUbuntu.com:Come emettere un suono una volta completato un processo?

Linux
  1. Il modo migliore per rilevare (da uno script) se il software è installato?

  2. Opzione Rsync sconosciuta dall'esecuzione dello script Bash?

  3. Come sapere se sono in una sessione Tmux da uno script Bash?

  4. Creazione di uno script per mostrare una notifica quando sono disponibili aggiornamenti?

  5. Pipe da/verso gli appunti nello script Bash

Script di Bash per centrare Fortune/testo da Stdin/pipe?

Come inviare notifiche desktop su Ubuntu utilizzando l'invio di notifiche

Apri Vim dall'interno di uno script di shell Bash

C'è un modo per convertire da UTF8 a ISO-8859-1?

Chiama lo script Python da bash con argomento

Apertura di Sublime Text da Bash su Ubuntu su Windows