Um comando de linha para adicionar novos itens à lista de permissões do systray do com.canonical.Unity.Panel

8

Este é mais um modo de usar a pergunta de instrução de linha de comando do que adicionar itens ao painel de notificação do Unity.

Eu tenho que ter uma CLI de uma linha para adicionar um novo item à lista de permissões do arquivo systay com.canonical.Unity.Panel.

O procedimento padrão para fazer isso é:

sudo gsettings get com.canonical.Unity.Panel systray-whitelist

Recebemos

['JavaEmbeddedFrame', 'Wine', 'Skype']

Então nós fazemos o segundo comando

sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"

Enquanto isso é ótimo e tudo, é necessário que as pessoas copiem e colem o resultado da primeira linha e, para um script que estou escrevendo, quero fazê-lo em um único comando.

Até agora, isso é o que eu tenho:

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 "\""}'

Acho que estou perdendo alguma coisa.

Em primeiro lugar, não tenho certeza se estou colocando a corda na função set de gsettings corretamente. Em segundo lugar, enquanto eu acho que estou analisando a saída do gsettings get function corretamente, eu não iria descobrir uma maneira de adicionar o "" resultado modificado usando sed, então eu tive que canalizar outro comando do awk para essa bagunça.

Obrigado a qualquer um que ajude.

    
por hansioux 15.04.2011 / 19:14

1 resposta

8

Depois de acertar erro após erro, finalmente percebi porque não aceitou as aspas. Você pode simplesmente colocar as aspas ao redor da variável real, sem necessidade de inseri-las no comando real.

Isso funcionará:

gsettings set com.canonical.Unity.Panel systray-whitelist "$(gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/]$/, 'shutter']/")"

(Além disso, você precisa remover o 'in sed -e' s / '] $ / no seu exemplo para que isso funcione).

Edição posterior: a propósito, não execute gsettings com sudo ... não funcionará.

    
por Alin Andrei 16.04.2011 / 00:02