A execução de um script bash ao clicar duas vezes não possui todas as variáveis de ambiente [duplicado]

1

Estou executando Debian . Eu tenho um arquivo jar que preciso executar. Um script% wrapper bash faz um java -jar MyProg.jar . O jar também chama algum código C para o qual LD_LIBRARY_PATH precisa ser definido.

Eu defini LD_LIBRARY_PATH no bashrc do usuário atual (digamos que o Sriram) assim: %código%.

Tudo funciona como esperado ao executar o script acima na linha de comando. No entanto, quando executo o mesmo arquivo bash clicando duas vezes nele, export LD_LIBRARY_PATH=myLibLocation não está definido. Aqui está um exemplo de script LD_LIBRARY_PATH que escrevi:

#!/bin/bash
echo 'whoami';
echo "PATH = ${LD_LIBRARY_PATH}"  

Ele é executado conforme o esperado na linha de comando, mas não quando eu o executo clicando duas vezes. A saída nesse caso é:

Sriram
PATH =   

This pergunta é exatamente o mesmo que isso. Eu tentei implementar todas as sugestões, mas não tive sucesso.

Atualização:

O que eu tentei da resposta à pergunta a que me vinculei:
1. Criei um arquivo bash . Não existia no meu sistema.
2. Defina ~/.xsessionrc no script acima.

Reiniciou um novo shell. Voltei a executar o script acima. Nenhuma alteração foi observada.

Qualquer ajuda é muito bem vinda.

    
por Sriram 03.06.2015 / 11:30

1 resposta

0

Tente isso (você está perdendo um '#!' e também é melhor definir um ambiente específico do programa no script wrapper do programa em vez de ~ / .bashrc para não afetar potencialmente outros programas ):

#!/bin/bash
export LD_LIBRARY_PATH=myLibLocation
echo 'whoami';
echo "PATH = ${LD_LIBRARY_PATH}"  
    
por 03.06.2015 / 12:16