De onde a variável de ambiente bash foi inicializada?

1

Quando executo:

echo $PYTHONPATH

na linha de comando recebo a seguinte saída:

/home/nehal/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages:/home/nehal/anaconda3/lib/python3.6/site-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s

Eu olhei para o arquivo .bashrc e encontrei apenas um PYTHONPATH set

export PYTHONPATH="/home/nehal/anaconda3/lib/python3.6/site-package‌​s:$PYTHONPATH"

Também procurei .profile , /etc/environment e /etc/profile mas em nenhum lugar eu poderia encontrar PYTHONPATH .

Minha pergunta é de onde vieram os caminhos extras acima?

    
por nrb 08.05.2018 / 20:08

2 respostas

3

Você pode descobrir quais arquivos estão sendo pesquisados rastreando quais arquivos o bash é aberto:

strace -e open bash -l

Isso deve imprimir todos os arquivos que o bash tenta abrir (muitos dos quais são bibliotecas C que você pode usar). Isso deve lhe dar dicas sobre onde procurar. (A opção "-l" para o bash pede que ele seja executado como um shell "login", que geralmente faz com que o bash analise mais alguns arquivos de inicialização.)

    
por 08.05.2018 / 21:58
0

Na inicialização, o 'bash' carrega suas configurações de vários arquivos. A maioria deles geralmente vive em subdiretórios do diretório '/ etc'. Então eu iria executar o seguinte comando para encontrar todos os arquivos contendo 'PYTHONPATH':

grep -R PYTHONPATH / etc 2 > / dev / null

    
por 08.05.2018 / 23:25