On 3/4/06, Marcos Vinicius Lazarini wrote: > Até hoje, nao entendi (nem me conformo) pq tem que colocar nos dois > lugares....... isso vale tanto pros arquivos globais como os do usuário. > > No ~/.bash_profile já tem o alias que adiciona o ~/bin no PATH, foi só > descomentar e no ctrl+alt+fx funcionou perfeito. PORÉM, qdo abro um console > no X, ele não roda o ~/.bash_profile e sim ~/.bashrc - que não a modificação > do PATH comentada. Meu, que raiva! Toda vez que eu ia no console e digitava > algo do meu bin que ele nao achava, eu ficava doido. > Ontem, num acesso de nervosismo, fiz umas gambis nos dois arquivos pra um > chamar o outro SEMPRE. > > Se alguém soubesse me dar um motivo médio (não precisa ser muito convincente > :-) ) para explicar por que o bash funciona assim ficaria muito grato...
Já que não precisa ser muito convincente, eu respondo. :-) Como dito no manual do bash, ele faz distinção entre terminal de login e outros terminais. Os terminais de programas gráficos tipo xterm, konsole, gnome-terminal, etc. NÃO são terminais de login -- você fez login antes deles serem executados. Os terminais dos getty (aqueles do ctrl+alt+fx) são terminais de login -- você abre eles ao fazer login. O bash chama arquivos de iniciliazação diferentes em função ser chamado no login ou não. Agora, provavelmente você quer mesmo é saber porque ele faz isso. Acredito que o motivo é permitir o máximo de personalização, o que permite minimizar os recursos usados. Geralmente você precisa de mais coisa sendo executada no login. Para "piorar" ainda mais, o bash também faz distinção entre ser interativo ou não. Acredito que pelas mesas razões, afinal toda hora tem um bash sendo iniciado e outro sendo terminado por motivos diversos. Quanto mais leve puder ser a inicialização de cada instância do bash, melhor. -- Bruno de Oliveira Schneider http://www.dcc.ufla.br/~bruno/

