Quando o .profile é executado?

2

Eu estava instalando um aplicativo e tive dificuldade em entender por que o guia de instalação disse para adicionar um comando export ao de arquivos de inicialização. Eu não vi quando é executado. Essa foi a linha:

export WORKON_HOME=$HOME/.virtualenvs

Eu executei alguns códigos no terminal e descobri que o comando export não funcionava. Por quê?

root@localhost:/home/gameboy# echo export ADAM=Boss>>/home/pythontest/.profile
root@localhost:/home/gameboy# tail /home/pythontest/.profile
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
export ADAM=Boss
root@localhost:/home/gameboy# su pythontest
pythontest@localhost:/home/gameboy$ echo $ADAM

pythontest@localhost:/home/gameboy$ 
    
por trzczy 28.02.2017 / 15:55

2 respostas

1

~/.profile pode ser executado no lançamento de um shell Bash de login.

Primeiro, o sistema executa o /etc/profile em todo o sistema e, em seguida, o primeiro desses arquivos que existe e é legível:

~/.bash_profile
~/.bash_login
~/.profile

Seu problema é que você está mudando o usuário via su pythontest . Você deve garantir que o shell gerado seja um shell de login, adicionando o sinalizador -l :

su -l pythontest
    
por 28.02.2017 / 17:05
1

Você faz export ADAM=Boss depois para alteração imediata ou . ~/.profile para forçar o shell a reler o arquivo .profile .

    
por 28.02.2017 / 15:57