web-dev-qa-db-fra.com

Affichage du résultat de la commande du terminal dans la notification du bureau

Je dois afficher le résultat d'une commande de terminal dans la notification.

Les notifications peuvent être déclenchées en exécutant:

notify-send "Notification message"

La commande que j'ai est la suivante:

Sudo /opt/lampp/xampp start

qui montre le résultat suivant dans le terminal:

Starting XAMPP for Linux 5.6.20-0...
XAMPP: Starting Apache...already running.
XAMPP: Starting MySQL...already running.
XAMPP: Starting ProFTPD...already running.

Je veux que ce résultat soit affiché dans la notification, tout comme "Message de notification" est affiché avec notify-send.

Merci!

5
M. Zeeshan

Dans la plupart des cas, vous pouvez utiliser notify-send avec substitution de commande$(). Par exemple:

notify-send "XAMP Start" "$(Sudo /opt/lampp/xampp start)"

Dans un script, vous pouvez utiliser une fonction pour envelopper la totalité de la sortie:

#!/bin/bash
main() { echo "Line 1"; echo "Line 2";  echo "Line 3"; }
notify-send "Script output" "$(main)"

Si vous devez exécuter cette fonction avec Sudo:

notify-send "Script output" "$(Sudo bash -c "$(declare -f main); main")"
8
pa4080