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

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

Re: RES: [shell-script] Perdendo variáveis novamente


From: Reinaldo Carvalho
Subject: Re: RES: [shell-script] Perdendo variáveis novamente
Date: Thu, 15 Sep 2005 13:36:38 -0300

Não seria possível usar um export para torna a variavel visível para o
shell depois do subshell ser encerrado?

Em 14/09/05, Julio Cezar Neves -
DATAPREVRJ<address@hidden> escreveu:
> Caro Richard,
> o problema não está no loop, mas sim no pipe. É pq cada pipe é executado em
> um subshell e no shell as coisas funcionam da seguinte maneira: na criação
> de um subshel, as variáveis exportadas do shell pai sõ *copiadas* para cada
> subshell. Desta forma, ao fim de cada subshell, os valores de suas variáveis
> são perdidos, ficandos os valores que tinham no shell original.
> 
> Então respondendo a sua pergunta: para vc não perder os valores de uma
> variável alterada no interior de um loop, basta que este loop não seja
> acionado por um pipe e existem algumas formas para fazer isso. Por exemplo:
> 
> Para trabalhar um arquivo usamos redirecionamento de entrada. Evite:
> 
> cat arq | while read linha
> ...
> ...
> done
> 
> Prefira:
> 
> while read linha
> ...
> ...
> done < arq
> 
> Para trabalhar comandos, usamos substituição de processos. Evite
> 
> ls | while read arq
> do
>     let i++
>     echo $i $arq
> done
> echo $i
> 
> Prefira:
> 
> while read arq
> do
>     let i++
>     echo $i $arq
> done < <(ls)
> echo $i
> 
> SuShellso,
> Julio
> :wq
> 
> | -----Mensagem original-----
> | De: richardbortolucci [mailto:address@hidden]
> | Enviada em: quarta-feira, 14 de setembro de 2005 16:37
> | Para: address@hidden
> | Assunto: [shell-script] Perdendo variáveis novamente
> |
> |
> | Pessoal,
> |
> | Há pouco tive um problema com variáveis que são zeradas após um loop
> | while e agora voltei a encontrar esse problema mas em uma situação
> | diferente, com vários loops, etc... bom a dúvida é a seguinte: é
> | possível criar variáveis que não se perdem após os loops?
> |
> | Por exemplo: eu crio a variável antes do loop, atribuo um valor a
> | mesma, altero a mesma várias vezes dentro de vários loops (while, for,
> | etc) e após todos os loop eu apresento a mesmo variável.
> |
> | Richard.
> |
> |
> |
> |
> | ---------------------------------------------------------------------
> | 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
> ---------------------------------------------------------------------
> 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
> 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 
> 
> 
> 


-- 
Reinaldo Carvalho
Debian Sarge 3.1 - Linux User: #238310
Prodepa - address@hidden


reply via email to

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