Este comando funciona no terminal, mas não em um shell script

1

Eu tenho um comando que gostaria de executar a partir de um script de shell:

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam

Este comando é necessário para executar o Steam corretamente no meu sistema. Se eu tentar executar o Steam sem este comando, o ícone aparece no lançador e depois desaparece novamente, deixando apenas um processo que eu tenho que terminar no monitor do sistema.

Se eu cortar e colar esse comando diretamente em um terminal, ele funcionará perfeitamente. O Steam abre e funciona bem, e o terminal fica no fundo dando saída até que o Steam seja fechado novamente.

Se eu tentar executar esse comando a partir de um script de shell, ele não funcionará mais. O mesmo comportamento problemático aparece.

Curiosamente, se eu entrar no terminal e digitar ./Steam.sh - que é o nome do meu script - o Steam abrirá corretamente.

O Steam.sh está localizado na minha pasta pessoal, e eu executo todos os comandos da minha pasta pessoal no terminal e dei permissão de execução para o Steam.sh. Eu também tentei adicionar & ao final do comando no shell script, mas isso não ajudou.

Alguma idéia de por que esse comando funciona de forma diferente, dependendo de ser iniciado a partir de um script de shell ou de um terminal? Eu pensei que scripts de shell deveriam ser basicamente a mesma coisa que executar comandos de um terminal.

    
por Excrubulent 15.01.2017 / 10:45

1 resposta

1

Porque o intérprete de Terminal padrão é Dash , onde você está executando o script em Bash . Bash apresenta coisas que Dash não faz.

De qualquer forma, você pode corrigir o Steam assim:

Antes de executar o Steam:

ln -sf /usr/lib/libstdc++.so.6.0.20 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6

Depois de executar o Steam:

rm $HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm $HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6
    
por Alberto Salvia Novella 15.01.2017 / 16:45