Il s'agit davantage d'une question sur l'utilisation de l'instruction en ligne de commande que sur la façon d'ajouter des éléments au panneau de notification Unity.
Je dois avoir une CLI sur une ligne pour ajouter un nouvel élément à la liste blanche systray com.canonical.Unity.Panel.
La procédure standard pour ce faire est la suivante:
sudo gsettings get com.canonical.Unity.Panel systray-whitelist
On a
['JavaEmbeddedFrame', 'Wine', 'Skype']
Ensuite, nous faisons la deuxième commande
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"
Bien que ce soit génial et tout, cela nécessite que les gens copient et collent le résultat de la première ligne, et pour un script que j'écris, je veux le faire en une seule commande.
Jusqu'à présent, voici ce que j'ai:
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 "\""}'
Je pense que je manque quelque chose.
Premièrement, je ne suis pas sûr de canaliser correctement la chaîne dans la fonction set gsettings. Deuxièmement, bien que je pense que j'analyse la sortie de gsettings get function correctement, je ne trouverais pas un moyen d'ajouter le "" autour du résultat modifié en utilisant sed, j'ai donc dû diriger une autre commande awk dans ce bordel.
Merci à tous ceux qui aident.
la source
Réponses:
Après avoir frappé erreur après erreur, j'ai finalement compris pourquoi il n'acceptait pas les citations. Vous pouvez simplement placer les guillemets autour de la variable réelle, pas besoin de les saisir dans la commande réelle.
Cela fonctionnera:
(De plus, vous devez supprimer le 'in sed -e "s /'] $ / dans votre exemple pour que cela fonctionne).
Edition ultérieure: au fait, ne lancez pas gsettings avec sudo ... cela ne fonctionnera pas.
la source