Это скорее вопрос о том, как использовать командную строку, а не о том, как добавлять элементы на панель уведомлений Unity.
У меня должен быть однострочный CLI, чтобы добавить новый элемент в системный белый список com.canonical.Unity.Panel.
Стандартная процедура для этого:
sudo gsettings get com.canonical.Unity.Panel systray-whitelist
Мы получили
['JavaEmbeddedFrame', 'Wine', 'Skype']
Затем мы делаем вторую команду
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"
Хотя это здорово и все, требуется, чтобы люди копировали и вставляли результат из первой строки, и для сценария, который я пишу, я хочу сделать это одной командой.
Пока это то, что у меня есть:
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 "\""}'
Я думаю, что что-то упустил.
Во-первых, я не уверен, правильно ли я передаю строку в функцию gsettings set. Во-вторых, хотя я думаю, что я правильно разбираю вывод функции gsettings get, я не смог бы найти способ добавить "" к измененному результату с помощью sed, поэтому мне пришлось направить еще одну команду awk в этот беспорядок.
Спасибо всем, кто помогает.