On 5/29/07, Zandre Bran <[EMAIL PROTECTED]> wrote:
On 5/29/07, Zandre Bran <[EMAIL PROTECTED]> wrote: >[...] > Então parto do principío que ao fazer o login em modo texto também > entro no bash, já que é o shell padrão. O que não entendo é porque ao > alterar a PATH no /etc/profile não afeta gnome-terminal e se altero no > /etc/bash.bashrc não afeta do login em modo texto. O que faz-me > concluir que para ter a variável PATH alterada para os dois ambientes > (modo texto e gnome-terminal), tenho que alterar o PATH em > /etc/profile (para modo texto) e /etc/bash.bashrc (para o > gnome-terminal). Lendo os arquivos vejo que os dois (profile e > bash.bashrc) tem a mesma declaração da PATH. > > É isto que não estou compreendendo. O que é de quem!Pois é; quem é cego é cego. Tá lá na primeira linha do bash.bashrc # System-wide .bashrc file for interactive bash(1) shells. E em .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. Ou seja, baseado tb na participação do Fabiano Manoel, o bash.bashrc vale para shell sem login que é o caso gnome-terminal. Isto é shell sem login. Ok, agora o q não entendo, sendo o /etc/profile lido, qdo abro um xterm, a leitura do /etc/bash.bashrc sobrepoe o /etc/profile? Pelo visto sim. Mas não deveria, ele poderia adicionar, mas sobrepor principalmente a variavel PATH? Este comportamento do /etc/bash.bashrc de sobrepor o /etc/profile é fato? Ou estou fazendo errado aqui? Obrigado pelo tempo, Zandre.
Este processo no Debian é mais um mito que fato. Todo mundo acha que é algo mas aé hoje ue não vi ninguém falar com certeza como funciona. Seguindo a lógica, funcionaria assim: /etc/profile - É um arquivo de configurações globais, que tenta ser o mais independente possível de um shell. Ele que exporta variáveis básicas como o PATH para bash, tcsh, ksh e qualquer outro shell. /etc/bash.bashrc - São as opções específicas do bash para a inicialização o shell de escopo global (todos usuários). Ele é lido depois do /etc/profile se tu trabalha com OOP poderia dizer que ele herda os atributos do /etc/profile. ;) $HOME/.bashrc - Mesmo que /etc/bash.bashrc, porém o escopo é o prórpio usuário. (Ele herda de /etc/bash.bashrc, consequentemente herda de /etc/profile) Mais detalhes que isso eu não posso dar, sou usuário do TCSH e customizo este tipo de script desobedecendo descaradamente o padrão da distribução em nome de uma melhor usuabilidade :) A propósito, se tu fizer scripts como o abaixo para chamar tua aplicação pode ser mais conveniente: OBS: Nomes são sugestões. ;) /usr/appenv/vars.sh: ---- #!/bin/sh JAVA_HOME=/usr/lib/java CATALINA_HOME=/usr/local/tomcat PATH=$JAVA_HOME/bin:$PATH ---- /usr/appenv/loadapp1.sh ---- . /usr/appenv/vars.sh # equivale a um import do java ou include() do php java -jar app1.jar ---- E de workarounds a vida continua :) -- Por favor não faça top-posting, coloque a sua resposta abaixo desta linha. Please don't do top-posting, put your reply below the following line. --------------------------------------------------------

