[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Variáveis
From: |
Emerson Domingues Souto - H2M |
Subject: |
RES: [shell-script] Variáveis |
Date: |
Fri, 25 May 2012 09:24:01 -0300 |
Ricardo,
Até mesmo as variáveis declaradas no /etc/profile são carregas somente no
momento que vc se loga. Ou seja, nessa questão o /etc/profile funciona como o
.bash_profile, a diferença é que o /etc/profile é para todos os usuários e o
.bash_profile é somente para um determinado usuário (ou grupo de usuários
depende de como foi montado). Outra diferença é que o /etc/profile é executado
primeiro, porém ambos são executados durante o login do usuário.
Pra vc entender, faça um teste, inclua no final do arquivo /etc/profile as
seguintes linhas:
echo $TESTE
TESTE="xuxu_beleza"
echo $TESTE
Se loque novamente no sistema, esses dois echo no /etc/profile vão mostrar que:
o 1º echo mostra que a variável está vazia, o 2º echo mostra que a variável
está carrega com a string "xuxu_beleza", isso serve pra vc perceber que o
instante que as variáveis do /etc/profile são carregadas é quando vc faz o
login.
Entendeu ?
Emerson Domingues Souto
Tecnologia da Informação
Marítima Seguros S/A
Fone: 11 3156-1017
De: address@hidden [mailto:address@hidden] Em nome de address@hidden
Enviada em: sexta-feira, 25 de maio de 2012 01:06
Para: address@hidden
Assunto: Re: [shell-script] Variáveis
Tiago,
Então quando falamos em variável de ambiente, estamos nos referindo a todas as
variáveis que estão disponíveis na sessão que estamos logados?
Podendo essas variáveis terem sido carregadas via /etc/profile (no caso de
estarem disponíveis antes mesmo do usuário se logar), como também as que ficam
disponíveis dentro do /home do usuário (~/.bash_profile, ~/.bash_login ou
~/.profile)?
Ou seja, eu carrego algumas variáveis antes mesmo de me logar como também posso
carregar após me logar.
Uma vez carregadas dentro da minha sessão, elas são variáveis de ambiente (do
meu ambiente).
Quando pré-carregadas antes mesmo da minha sessão ser iniciada, elas seriam
também variáveis de ambiente, só que variáveis de ambiente do programa que esta
controlando a minha possível ou não sessão.
É este o conceito?
Obrigado
Ricardo F. Moscou
________________________________
De: Tiago Peczenyj <address@hidden <mailto:tiago.peczenyj%40gmail.com> >
Para: address@hidden <mailto:shell-script%40yahoogrupos.com.br>
Enviadas: Quinta-feira, 24 de Maio de 2012 11:44
Assunto: Re: [shell-script] Variáveis
Todas as variaveis são de ambiente.
Estamos falando do shell, que é um interpretador de comandos que roda como
um processo. Quando vc se loga vc inicia um processo que é um shell (o
/bin/bash por exemplo) e começa a trabalhar nele. Tudo o que vc faz roda
nesse processo ou em processos filhos dele, assim as variaveis de ambiente
do shell corrente podem ser copiadas para o processo filho se estiverem
exportadas.
quando o shell inicia
ele lê alguns arquivos de configuração (.profile,
.bashrc) e ele cria ou atualiza algumas variaveis, outras são internas.
agora o processo que inicia o seu shell pode ter algumas variaveis de
ambiente também. No linux vc pode ver pelo diretorio virtual /proc/ID
por exemplo, se o seu shell tiver o process id (pid) 1234
cat /proc/1234/environ
isso vai mostrar todas as variaveis que o processo pai passou para ele.
para saber que é o processo pai vc pode olhar o /proc/1234/stat que no
quarto campo tem o id do pai.
o pai de todos é o init cujo pid é 1.
sudo cat /proc/1/environ
vais ver as primeiras variaveis de ambiente.
de onde elas vem? de uma chamada de sistema como execve que recebe a
primeira lista de variaveis dentro do kernel - provavelmente. Alias o
codigo disso tudo é aberto vc poderia dar uma olhada la - faça git clone
https://github.com/torvalds/linux e grep -R por /sbin/init
variaveis são simbolos com valores que são passados por copia. não pense
que são variaveis como em C ou Java, estão um pouco para macros do C, então
nem todas as analogias são possiveis.
2012/5/24 <address@hidden <mailto:ricardomoscou%40yahoo.com.br> >
> **
>
>
>
>
> ________________________________
> De: Tiago Peczenyj <address@hidden <mailto:tiago.peczenyj%40gmail.com> >
> Para: address@hidden <mailto:shell-script%40yahoogrupos.com.br>
> Enviadas: Terça-feira, 22 de Maio de 2012 13:00
> Assunto: Re: [shell-script] Variáveis
>
>
> O que vc chama de
sessão?
>
> No shell/unix todas as variaveis são de ambiente.
> Você se refere tanto as que são definidas antes no login de usuário no
> /etc/profile?
>
> Essas também podem ser chamadas de variáveis de ambiente?
>
>
> A diferença é se elas serão copiadas para os processos filhos ou não, é
> isso que o comando export faz. Por outro lado a questão de escopo é para
> restringir a variavel a um bloco de codigo ou não, ou seja, se vc quer que
> uma variavel criada por uma função seja visivel fora da mesma
>
> http://tldp.org/LDP/abs/html/localvar.html
>
> Não existem variaveis globais em Shell no sentido delas serem acessadas em
> qualquer processo, vc pode forçar a existencia de algumas a partir do
> .profile ou .bashrc fora as que são criadas pelo shell (
$CDPATH ou $PWD
> por exemplo), mas elas ficam restritas por processo e só podem ser
> alteradas no processo corrente, a passagem delas é por copia.
>
> Eu acabei me confundindo mais ainda.
> Vamos lá?
>
> Antes de você se logar já existe variáveis definidas correto?
> Essas variáveis são globais, ou de ambiente?
> Depois que você se loga, estas mesmas variáveis continuam valendo para a
> sua sessão. Neste caso elas continuam sendo chamadas de globais, ou por
> estar disponível para a sua sessão de login passa a se chamar variáveis de
> ambiente?
>
> Obrigado novamente.
>
> Ricardo F. Moscou
> 2012/5/21 ricardomoscou <address@hidden <mailto:ricardomoscou%40yahoo.com.br>
> >
>
> > **
>
> >
> >
> > Bom dia a todos,
>
>
> > Sei que variáveis locais só podem funcionar dentro da sessão do usuário.
> > Sei também que se usarmos o comando export, esta variável poderá ser
> usada
> > nas sessões iniciadas a partir da sessão atual.
> >
> > Já as variáveis globais estão sempre disponíveis para serem usadas por
> > qualquer sessão de usuário.
> >
> > Para vermos as variáveis locais assim como as exportadas, usamos o
> comando
> > env.
> >
> > Para vermos "todas" as variáveis, usamos o comando set.
> >
> > Pergunta:
> >
> > Quem são as variáveis de ambiente?
> > Seria um terceiro tipo de variável?
> >
> >
> >
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ------------------------------------
>
>
> ----------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ----------------------------------------------------------
> Sair da lista: address@hidden
> <mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
>
> ----------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
>
----------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
Tiago B. Peczenyj
Linux User #405772
http://pacman.blog.br
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
----------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
----------------------------------------------------------
Sair da lista: address@hidden
<mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
----------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
----------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
[As partes desta mensagem que não continham texto foram removidas]
[As partes desta mensagem que não continham texto foram removidas]
- Variáveis, ricardomoscou, 2012/05/21
- Re: [shell-script] Variáveis, Tiago Peczenyj, 2012/05/22
- Re: [shell-script] Variáveis, ricardomoscou, 2012/05/24
- Re: [shell-script] Variáveis, Tiago Peczenyj, 2012/05/24
- Re: [shell-script] Variáveis, ricardomoscou, 2012/05/25
- RES: [shell-script] Variáveis,
Emerson Domingues Souto - H2M <=
- RES: [shell-script] Variáveis, Emerson Domingues Souto - H2M, 2012/05/25
- Re: [shell-script] Variáveis, Tiago Peczenyj, 2012/05/25
- Re: [shell-script] Variáveis, ricardomoscou, 2012/05/26
- Re: RES: [shell-script] Variáveis, ricardomoscou, 2012/05/26