gsettings não funciona de dentro da função bash

0

Novidade no bash e apenas 6 meses no ubuntu então, por favor, descubra comigo.

Estou criando um script de pós-instalação link tudo está indo bem até agora está escrito em bash e tem sido uma curva de aprendizado REAL que foi o ponto. . . A razão que eu tenho tudo separado em funções é porque eu tenho mais de uma máquina que usa o Ubuntu e este é um script que me permite modularizar o que eu quero instalar em uma unidade particular como o meu laptop recebe um pacote comp dev casa recebe mídia e pós-instalação comum.

Cheguei à função de configuração e entendo que há duas maneiras de alterar as configurações.

  1. Faça backup de sua pré-instalação original & amp; copiar sobre a pós-instalação. . . não está trabalhando nisso ainda
  2. executando comando simples do terminal, como gsettings set com.canonical.indicator.session show-real-nome-no-painel true

Então, seguindo em frente no terminal, eu digito

 gsettings set com.canonical.indicator.session show-real-name-on-panel true

E o nome real aparece no painel:)

Coloque em uma função

function homeSettings(){
   echo "Changing Settings";
   gsettings set com.canonical.indicator.session show-real-name-on-panel true;
   echo "Setting Changed";
}

e quando executado do terminal

./relutionDev homeSettings

Eu recebo a saída do terminal do eco, então sei que ele está sendo chamado, mas não altero as configurações. Eu tenho batido minha cabeça contra uma parede sem sucesso eu olhei para outras perguntas com relação íntima a meu a respeito de mudar papel de parede e cron trabalhos mas o meu não é um papel de parede ou um trabalho cron. . Alguém pode me apontar na direção certa

    
por Jason Demitri 20.01.2015 / 16:20

1 resposta

1

Você está executando o script de instalação com sudo , mas gsettings é um sistema de configuração por usuário. é por isso que você não vê nenhuma mudança.

Tente sem sudo (como usuário normal) e isso deve funcionar.

    
por Sylvain Pineau 20.01.2015 / 17:58