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

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

Re: RES: [shell-script] Variáveis


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

Entendi sim Emerson.

Valeu pela ajuda.

 
Ricardo F. Moscou


________________________________
 De: Emerson Domingues Souto - H2M <address@hidden>
Para: address@hidden 
Enviadas: Sexta-feira, 25 de Maio de 2012 9:24
Assunto: RES: [shell-script] Variáveis
 

  
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]


 

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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