Passando VARS para outro console no Fedora

0

Estou tentando criar o arquivo config.sh de um caminho definido em uma variável. Como obtenho minha variável para expandir no console atual. Aqui estão meus comandos:

[root@mysystem]#export AUTO_PATH="/mnt/share/__automation__"         
[root@mysystem]#runuser -l $(who | grep tty2 | awk -F " " '{print $1}') -c 'source $AUTO_PATH/config.sh;gnome-screensaver-command -d;xset dpms force on'

Estas são as saídas que recebo:

-bash: /config.sh: No such file or directory
** Message: Failed to get session bus: Command line 'dbus-launch --autolaunch=cb264e3a020119540fab776c00000007 --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.\n
xset:  unable to open display ""

Eu estou rodando no Fedora 16 e estou tentando desligar o protetor de tela antes de fazer um screencapture. Meu valor $DISPLAY está armazenado no meu config.sh

    
por Alex 24.05.2014 / 01:56

1 resposta

1

Altere suas aspas simples para aspas duplas:

Isto:

-c 'source $AUTO_PATH/config.sh;gnome-screensaver-command -d;xset dpms force on'

Deve ser assim:

-c "source $AUTO_PATH/config.sh;gnome-screensaver-command -d;xset dpms force on"

Na página bash(1) man:

 Enclosing characters in single quotes preserves the  literal  value  of
 each character within the quotes.  A single quote may not occur between
 single quotes, even when preceded by a backslash.

 Enclosing characters in double quotes preserves the  literal  value  of
 all  characters  within the quotes, with the exception of $, ', \, and,
 when history expansion is enabled, !.  The characters $  and  '  retain
 their  special meaning within double quotes.

Isso significa que qualquer expressão $ , como uma expansão de variável, ainda é honrada quando está entre aspas duplas, mas não se estiver entre aspas simples.

    
por 24.05.2014 / 06:15