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

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

Re: [shell-script] Pegar valor de variável fora do Loop


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Pegar valor de variável fora do Loop
Date: Fri, 18 Nov 2005 13:31:55 -0200

se vc faz questão do subshell, jogue o resultado da variavel para um arquivo
;-)

Em 18/11/05, Rodrigo Monteiro <address@hidden> escreveu:
>
>  Rubens,
>
>
> On 11/18/05, Rubens S. Nogueira <address@hidden> wrote:
> > Pessoal, estou com um problema aqui.
> >
> > Eu tenho o arquivo lista abaixo:
> >
> > $ cat lista.txt
> > joao
> > pedro
> > tiago
> >
> >
> > e um script para contar as linhas:
> >
> > $ cat contar_nomes.bash
> > #!/bin/bash
> >
> > i=0
> > cat lista.txt | while read LINE; do
> > let i++
> > echo "dentro "$i
> > done
> >
> > echo "fora "$i
> > exit
> >
> > ** Eu sei que para contar as linhas de um arquivo apenas precisaria
> > usar o "wc -l" porém criei este script para exemplificar meu problema.
> >
> > O retorno do script é este:
> >
> > $ ./contar_nomes.bash
> > dentro 1
> > dentro 2
> > dentro 3
> > fora 0
> >
> >
> > Como eu faço para incrementar uma variável dentro de um loop de forma
> > que eu consiga pegar o valor dela fora do loop??
> >
> >
> > Obrigado,
> > Rubens Saraiva
> >
> >
>
> cesecsrv:/tmp# cat teste.txt
> aaa
> bbb
> ccc
> cesecsrv:/tmp# cat teste.sh
> i=0
> while read linha ; do
> let i++
> echo "dentro $i"
> done < teste.txt
> echo "fora $i"
>
> # resultado
> dentro 1
> dentro 2
> dentro 3
> fora 3
> cesecsrv:/tmp#
>
> Alguém que se habilite a explicar melhor e mais detalhado... :)
> O problema está no pipe que gera uma subshell, e quando o while acaba
> ele mata essa subshell e portanto o valor de $i não existirá mais.
>
> []s
>
> --
> Rodrigo Monteiro
> "Free as in Freedom, not free as in free beer"
> JID: address@hidden
> address@hidden
>
>
>  ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.rd.yahoo.com/SIG=12fa7986d/M=380335.7481167.8369105.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1132330248/A=3126093/R=2/id=noscript/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/shell-script/
>    - Para sair deste grupo, envie um e-mail para:
>    address@hidden<address@hidden?subject=Unsubscribe>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


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



reply via email to

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