shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Variáveis


From: ricardomoscou
Subject: Re: [shell-script] Variáveis
Date: Sat, 26 May 2012 03:13:37 -0700 (PDT)

Opa Tiago,


Valeu pela ajuda.


 
Ricardo F. Moscou


________________________________
 De: Tiago Peczenyj <address@hidden>
Para: address@hidden 
Enviadas: Sexta-feira, 25 de Maio de 2012 10:59
Assunto: Re: [shell-script] Variáveis
 
é importante percebe que variaveis de ambiente ficam em alguma região da
memória e quando vc faz um fork de um processo vc copia uma região da
memória que representa o processo pai e, nesse balaio, vão as variaveis de
ambiente. Então além de passa-las pelo execve (ou variavel análoga) ou ler
de um arquivo de configuração também podem ser copiadas junto do processo.

acho que a unica exceção é a $RANDOM que retorna um valor aleatório a cada
leitura e atribuir um valor para ela é inutil. Isso deve ser um truque do
bash.

2012/5/25 Emerson Domingues Souto - H2M <address@hidden>

> **
>
>
> 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]
>
>  
>



-- 
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
---------------------------------------------------------------------
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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]