Dies ist eher eine Frage zur Verwendung von Befehlszeilenanweisungen als zum Hinzufügen von Elementen zum Unity-Benachrichtigungsfeld.
Ich muss eine einzeilige CLI haben, um ein neues Element zur com.canonical.Unity.Panel-Systray-Whitelist hinzuzufügen.
Das Standardverfahren hierfür ist:
sudo gsettings get com.canonical.Unity.Panel systray-whitelist
Wir bekommen
['JavaEmbeddedFrame', 'Wine', 'Skype']
Dann machen wir den zweiten Befehl
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"
Das ist zwar großartig und alles, aber die Leute müssen das Ergebnis aus der ersten Zeile kopieren und einfügen, und für ein Skript, das ich schreibe, möchte ich es in einem Befehl tun.
Bisher habe ich Folgendes:
sudo gsettings set com.canonical.Unity.Panel systray-whitelist | gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/']$/,'shutter']/" | awk 'NF{print "\"" $0 "\""}'
Ich glaube mir fehlt etwas.
Erstens bin ich mir nicht sicher, ob ich den String korrekt in die Funktion gsettings set weitergebe. Zweitens, während ich denke, dass ich die Ausgabe von gsettings get function richtig analysiere, würde ich keine Möglichkeit finden, das "" um das modifizierte Ergebnis mit sed hinzuzufügen, also musste ich einen weiteren awk-Befehl in dieses Chaos leiten.
Vielen Dank an alle, die helfen.