Inicia o comando linux com “su” e variável inline

0

Estou tentando criar o perfil do mozilla para outro usuário a partir da linha de comando usando su.

Quando eu estou tentando do X, isso vai funcionar.

su myuser -c 'mozilla -CreateProfile newprofile'

Mas meu objetivo é incorporar isso a um script e ele será executado apenas no modo de linha de comando. Se eu tentar isso, a partir de uma linha de comando, também funciona:

DISPLAY=1.0 mozilla -CreateProfile newprofile

A questão é como incorporar a variável "DISPLAY" no comando "su", porque isso falha:

su myuser -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'
    
por user48777 08.09.2010 / 14:33

5 respostas

1

Você já tentou isso:

su myuser -c 'export DISPLAY=\"1.0\"; mozilla -CreateProfile newprofile'

Isso realmente deve ser postado no superuser.com

Tente essa variante, escapando as aspas na variável DISPLAY ...

    
por 08.09.2010 / 14:36
0

Isso funciona para mim:

su sh -c 'DISPLAY=1.0  echo $DISPLAY'

qual é exatamente o erro que você está recebendo?

    
por 08.09.2010 / 14:39
0

E esse aqui:

su myuser -c "sh -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'"
    
por 08.09.2010 / 15:59
0

Resolvido:

su - -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile' myuser
    
por 08.09.2010 / 16:17
0
TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

Um arquivo temporário também funcionaria.

    
por 08.09.2010 / 23:06