Re: Criação de Variaveis de Ambiente
On 5/29/07, Zandre Bran <zandrebran@gmail.com> wrote:
On 5/29/07, Zandre Bran <zandrebran@gmail.com> 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.
--------------------------------------------------------
Reply to: