No terminal (xterm, aterm etc), verifique como o shell foi invocado: Um shell de login mostrará "-bash" e um shell que não seja de login mostrará "bash" quando você chamar echo $0
.
$ echo $0
-bash
$ bash
$ echo $0
bash
Um shell bash de login lerá o seguinte na ordem:
- / etc / profile
- ~ / .bash_profile
- ~ / .bash_login
- ~ / .profile
Verifique se algum desses arquivos existe e se eles reconfiguram a variável. Você também terá que seguir todos os arquivos que esses arquivos incluírem.
Se o bash não for invocado como um shell de login, ele ainda lerá os arquivos abaixo se for determinado como um shell interativo.
- /etc/bash.bashrc
- ~ / .bashrc
Uma maneira simples de determinar o tipo de bash shell que está sendo invocado é definir seu .bash_profile e .bashrc, e echo "Login shell" e "Interactive shell", respectivamente.
Depois que você souber o tipo de shell que está sendo chamado, terá a opção de adicionar seu script ao arquivo .bashrc ou .bash_profile em seu diretório pessoal. Como alternativa, você pode desativar a redefinição de LD_LIBRARY_PATH.
Observe que, se seu .bashrc ou .bash_profile estiver protegido por um protetor semelhante ao abaixo, talvez seja necessário chamar seu script para fora dele:
if [ "X$BASH_SOURCED" != "XYES" ]; then
export BASH_SOURCED=YES
fi
Tais guardas são normalmente colocados para evitar que um script seja originado várias vezes em uma sessão.
Editar: Se estiver provando que é tedius rastrear onde a variável está sendo redefinida, e você tem acesso a / etc / profile ou /etc/bash.bashrc por exemplo, você pode adicionar temporariamente "set -x" no topo do script para ver todos os comandos executados. A saída será bem detalhada, então primeiro faça um "set -x" no seu shell e execute alguns comandos para que você saiba o que esperar.