Zeile 16 in der Funktion notify_me()
su $USER_TMP -c "XAUTHORITY=/home/$USER_TMP/.Xauthority DISPLAY=:0 notify-send $1 $2"
Zeile 52
notify_me "Backup\-Platte\ erkannt" "starte\ Datensicherung\ \(ich\ sag\ es\ Dir,\ wenn\ ich\ fertig\ bin\!\)"
Zeile 58
notify_me "Backup\ heute\ schon\ durchgefuehrt" "Du\ kannst\ die\ Festplatte\ nun\ abstecken"
notify-send "this is the summary" "this is the body of the notification"
@postkutscher und @unklarer
Ich habe die Zeile von unklarer ausprobiert.
Als User in der graphischen Oberfläche angemeldet und in einem Terminal ausgeführt funktioniert es.
In einem root Terminal nicht mehr. (Wurde ja auch schon beschrieben.)
Die Befehlzeile im Skript enthält "Xauthority". Soweit eigentlich in Ordnung.
Die Zeile von unklarer mit su erweitert, wobei <user> durch meinen Benutzernamen ersetzt wurde
su <user> -c notify-send "this is the summary" "this is the body of the notification"ergab den Fehler
No summary specified.Mein Verdacht, es hat mit Quoting zu tun. Zusätzliche einfache Anführungszeichen um den ursprünglichen Befehl führten zum Erfolg:
su <user> -c 'notify-send "this is the summary" "this is the body of the notification"'Deshalb teste das Skript mal mit der Zeile 16
su $USER_TMP -c 'XAUTHORITY=/home/$USER_TMP/.Xauthority DISPLAY=:0 notify-send "$1" "$2"'
Der gesamte von root als $USER_TMP auszuführende Befehl steht in einfachen und die Variablen $1 und $2 in doppelten Anführungszeichen.
Du kannst analog dazu die Zeile in einem root Terminal testen, wobei die beiden <user> durch deinen Benutzernamen zu ersetzen sind.
su <user> -c 'XAUTHORITY=/home/<user>/.Xauthority DISPLAY=:0 notify-send "Summary" "The notification"'Die Zeilen 52 und 58 betreffend beinhaltete die Ausgabe im Titel die Backslashes.
Teste das bitte, und wenn es bei dir auch so ist dann:
"Backup\-Platte\ erkannt" zu
"Backup-Platte erkannt"und
"Backup\ heute\ schon\ durchgefuehrt" zu
"Backup heute schon durchgefuehrt"ändern.