GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un moyen d'afficher la notification du script bash dans Ubuntu ?

Si vous utilisez le nouveau système de notification dans Jaunty, vous voulez le notify-send commande

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.

Trouvé un autre moyen, grâce à Zenity

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

ou comme ceci :

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

(Cela a également l'avantage d'être déjà installé sur Ubuntu.)


Testé sur Ubuntu 14.04, 16.04, 18.04, 20.04. Captures d'écran d'Ubuntu 20.04.

  1. [Fonctionne bien] Notification contextuelle qui se ferme automatiquement après 4 à 10 secondes (en quelque sorte liée aux paramètres de votre système d'exploitation ?) :

    notify-send "Hello world"
    


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

  2. Fenêtre contextuelle avec des boutons à cliquer :

    1. La fenêtre n'obtient PAS la mise au point automatique : Source :moi-même ; remarque :pour les anciennes versions d'Ubuntu basées sur Unity, telles que 16.04, -t est ignoré pour toutes les valeurs sauf 0 - c'est stupide. :(. Pour les nouvelles versions d'Ubuntu basées sur Gnome, telles que 18.04 ou 20.04, -t est entièrement ignoré. Par conséquent, sur les anciennes versions d'Ubuntu basées sur Unity, telles que 16.04, en utilisant -t 0 provoque l'affichage des boutons, mais sur les nouvelles versions basées sur Gnome, ce n'est PAS le cas. Cela signifie que pour la capture d'écran Ubuntu 20.04 ci-dessous, le comportement et l'apparence de notify-send -t 0 "Hello world" est exactement identique à notify-send "Hello world" ci-dessus.

      notify-send -t 0 "Hello world"
      

      Sur Ubuntu 18.04 ou 20.04 ou version ultérieure, ajoutez simplement -u critical à la commande à la place pour qu'elle reste ouverte indéfiniment jusqu'à ce que vous cliquiez n'importe où dessus ! :

      notify-send -u critical "Hello world"
      


      Source :commentaire de @lucidbrot sous cette réponse, ainsi que mes propres tests.

    2. OU La fenêtre obtient la mise au point automatique :

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

      Remarque :la fenêtre ne se fermera PAS tant que vous n'aurez pas cliqué sur OK bouton.

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

  3. [MON FAVORI] La fenêtre se ferme automatiquement après le --timeout spécifié en quelques secondes OU après avoir cliqué sur le bouton "OK" !

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

    Remarque :la fenêtre se fermera automatiquement après le délai spécifié ci-dessus, en secondes !

    Source :moi-même lisant les pages de manuel :man zenity

  4. [super moche]

    xmessage 'hello world'
    

    Remarque :la fenêtre ne se fermera PAS tant que vous n'aurez pas cliqué sur ok bouton.

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

Jouez aussi des sons

  1. Si vous voulez aussi jouer des sons, avec la fenêtre contextuelle, pour signifier l'achèvement d'une commande ou quelque chose, voir mon autre réponse ici :AskUbuntu.com :Comment faire un son une fois qu'un processus est terminé ?

Linux
  1. Pipe vers/depuis le presse-papiers dans le script Bash

  2. Script bash :utilisation de la commande de script d'un script bash pour la journalisation d'une session

  3. Ouvrir Vim depuis un script shell Bash

  4. Existe-t-il un moyen de convertir UTF8 en ISO-8859-1 ?

  5. fichier de création atomique s'il n'existe pas à partir du script bash

La meilleure façon de détecter (à partir d'un script) si un logiciel est installé ?

Option Rsync inconnue à partir de l'exécution du script Bash ?

Comment savoir si je suis dans une session Tmux à partir d'un script bash ?

Script Bash vers Center Fortune/texte depuis Stdin/pipe ?

Comment envoyer des notifications de bureau sur Ubuntu à l'aide de notify-send

Exécuter le script bash à partir de l'URL