Para descobrir qual arquivo define JAVA_HOME , execute:
PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic "" 7>trace.out
Isso gera a saída de depuração para um shell de login bash e salva-o no arquivo trace.out . Haverá muitas linhas nesse arquivo. As linhas parecem:
+ /etc/profile:7:PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ /etc/profile:9:export PATH
Isto mostra (a) o nome do arquivo atualmente sendo executado, (b) o número da linha e (c) a saída de depuração para aquela linha naquele arquivo. Basta pesquisar por JAVA_HOME . Por exemplo:
grep JAVA_HOME trace.out
Como funciona
-
PS4='+ $BASH_SOURCE:$LINENO:'Ao criar um rastreamento de execução,
bashserá prefixado em todas as linhas com uma expansão dePS4. Aqui, fazemosPS4exibir o arquivo de origem e o número da linha que está sendo lida. -
BASH_XTRACEFD=7Isso envia o rastreio de execução para
7, que é um descritor de arquivo escolhido na esperança de que os arquivos iniciadosbashnão sejam mexidos. -
bash -xlic ""Isso inicia o bash com as opções
-x, o que faz com que todos os comandos sejam exibidos com o promptPS4,-l, que instruibasha tratar isso como um shell de login,-ique faz o shell interativo e-c "", que faz com que a nova saída do shell seja concluída assim que a inicialização for concluída. -
7>trace.outIsso redireciona a saída do rastreamento para o arquivo.