Por que as variáveis de ambiente não adicionadas ao .profile aparecem na tela?

3

Estou executando o Ubuntu 12.04

eu adicionei

export LD_LIBRARY_PATH=/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib

para .profile

mas quando eu logar e abrir o terminal e colocar echo $LD_LIBRARY_PATH não há nada.

Quando eu alterno para ctrl-alt-F1 e efetuo login, echo $LD_LIBRARY_PATH

/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib

mas quando executo screen , echo $LD_LIBRARY_PATH da tela fica vazia novamente

Em que circunstâncias posso esperar que variáveis de ambiente de .profile sejam configuradas? (curiosamente, parece que qualquer modificação no PATH feita no .profile sempre aparece)

EDIT: Desculpe, acho que não esclareci o que eu realmente queria saber qual é: Como eu posso definir uma variável de ambiente que eu quero que seja definida em qualquer lugar (ou seja, na tela, no terminal, quando eu log-in, e quando eu ssh em)?

    
por dspyz 22.05.2013 / 09:30

3 respostas

4

A resposta é:

Eu deveria colocá-los em .pam_enviornment

Veja aqui link

Eu imagino que esta é uma das perguntas mais comuns, eu não sei porque ninguém me deu a resposta correta quando fiz esta pergunta.

    
por dspyz 16.07.2013 / 00:43
3

No manual do Bash:

% bl0ck_qu0te%

Isso significa que, se você tiver um .bash_profile ou .bash_login em sua pasta pessoal, o bash não lerá o conteúdo de seu .profile . Além disso, quando não estiver em execução em um shell de login interativo, .profile também não será lido.

    
por daniel kullmann 22.05.2013 / 10:39
1
echo $0

retornará o nome do script que está sendo executado, quando este comando for executado dentro de um script de shell. Em um terminal, ele retornará o tipo de shell sendo usado.

Você está usando bash shell. Você precisa adicionar esta linha

export LD_LIBRARY_PATH=/home/dspies/workspace/hdf5-1.8.11-linux-shared/lib

para ~/.bash_profile file.

EDITAR:

Você pode encontrar os nomes de scipt do perfil de login para diferentes shells, aqui

EDIT2:

Até eu recebi duas respostas diferentes quando executei echo $0 em duas máquinas diferentes. Em uma máquina, obtive bash e, por outro, obtive -bash . Eu fiz essa pergunta aqui . Isto é o que eu tenho como resposta.

Processes with a - at the beginning of arg 0 have been run via login, or by exec -l in bash.

Depois de ler essa resposta, eu fiz help exec e lê, If the first argument is '-l', then place a dash in the zeroth arg passed to FILE, as login does .

    
por thefourtheye 22.05.2013 / 10:31