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

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

Re: [shell-script] Problema de escopo?


From: Julio C. Neves
Subject: Re: [shell-script] Problema de escopo?
Date: Wed, 28 Mar 2007 17:18:06 -0300

Fala Ricardo e Alfredo,
a cada pipe, o shell cia um fork, isto é divide-se em 2 e passa para o Shell
filho uma cópia das variáveis. Efoi o que aconteceu neste caso, isto é, o
while rodou em um shell filho e qdo este shell morreu, seu ambiente todo foi
com ele.

Qto ao fato de exportar Alfredo, isso é impossível, pois vc só consegue
exportar de pai para filho, neto, bisneto, ..., jamais no sentido inverso,
isto é, de filho para pai.

Ricardo, para contornar este tipo de problema, temos 2 formas:

cont1=0
   while read v
   do
        cont1=`expr $cont1 + 1`
   done < <(ls nomedearquivo*.cob)

   echo "$cont1 arquivo(s)"
echo "cont1 = $cont1"

ou:

cont1=0
IFS="
"   # Setar o IFS só é necessário se existir nome de arquivo com espaço em
branco
   for v in nomedearquivo*.cob
   do
        cont1=`expr $cont1 + 1`
   done
   echo "$cont1 arquivo(s)"
echo "cont1 = $cont1"

Aê Ricardo, está respondido. Agora vou te pedir um favor: Diga para a
Ritinha que eu e o Portugal estamos mandando uma beijoca para ela... :)

Todas as suas dúvidas já estão respondidas em português em
www.julioneves.com, nos links Papo de Botequim

Abração,
Julio
:wq



Em 28/03/07, Alfredo Casanova <address@hidden> escreveu:
>
>   posso estar enganado, mas acho q qdo vc poe um pipe, ele abre um shell
> filho
> e um não entende as variáveis do outro...
> acho que pode ser resolvido com export
>
> me corrijam se eu tiver falado mta besteira heheheh :)
>
>
> On 3/28/07, Ricardo d' Arêde <address@hidden<aredejrf_lists%40yahoo.com.br>>
> wrote:
> >
> >
> > Bom dia a todos.
> > Estou com o seguinte bloco:
> >
> >
> > cont1=0
> > ls nomedearquivo*.cob |
> > {
> > while read v
> > do
> > cont1=`expr $cont1 + 1`
> > done
> >
> > echo "$cont1 arquivo(s)"
> > }
> >
> > echo "cont1 = $cont1"
> >
> >
> >
> > O primeiro echo de $cont, dentro das chaves no pipe do ls, me mostra um
> > valor (por exempo 9) e
> > quando sai das chaves, o echo mostra 0;
> >
> > Estou usando o bash shell
> >
> > Agradeço atenção
> > Att.
> > Ricardo
> >
> >
> >
> > [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<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
> >
> >
> >
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> icq: 15793271
> msn: address@hidden <atcasanova%40gmail.com>
> aim: alfredotcasanova
> yim: atcasanova2
> tel: +55 61 84137319
> As aves têm na boca um dente chamado bico
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


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



reply via email to

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