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

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

Re: [shell-script] Fora do While a variavel é zerada


From: Tiago Peczenyj
Subject: Re: [shell-script] Fora do While a variavel é zerada
Date: Mon, 6 Jun 2011 16:58:08 -0300

melhor dica que posso te passar

xxx | grep 'palavra' | awk '{ comands } '

equivale a

xxx | awk '/palavra/{ comands } '

e se xxx for car arquivo basta fazer

awk '/palavra/{ comands }' arquivo

vc pode ler a saida do awk (ou qq outra coisa) no mesmo esquema eu passei
antes.

while read linha; do

done < <( comandos )

atenção para o espaço entre os <

para nunca esquecer :)

diff <(ls diretorioA) <(ls diretorioB)


2011/6/6 Eduardo Lucas <address@hidden>

>
>
> Isso mesmo cara...
> valeu obrigado..pela ajuda rapida e precisa!
> estou passando algumas rotinas de grep para awk também... vamos ver os
> resultados..
>
> abraço!
> valeu!!!!!
>
> Em 6 de junho de 2011 16:33, Tiago Peczenyj <address@hidden
> >escreveu:
>
>
> > Vc esta vendo um efeito colateral do pipe
> >
> > quando vc faz
> >
> > processo | outra coisa
> >
> > esta outra coisa é executado em um outro processo.
> >
> > neste outro processo vc até pode ver as variaveis de ambiente que vc
> > escolheu exportar, mas elas foram passadas por cópia então o que um shell
> > filho faz, o shell pai não "sente".
> >
> > Para resolver o seu problema basta executar o loop while no shell
> corrente.
> >
> > while read name; do
> > ...
> > done < /meu/arquivo
> >
> > cuidado com subshells e variaveis de ambiente. na duvida use AWK onde os
> > escopos de variaveis são bem definidos.
> >
> > 2011/6/6 Eduardo Lucas <address@hidden>
> >
> > >
> > >
> > > Caros.
> > > por favor, parece ser um problema simples...
> > > por favor, vejam o codigo abaixo:
> > >
> > > cat /home/eduardo/online.txt | while read name
> > > do
> > > if [[ $(echo $name | cut -d " " -f3) == "New" ]]
> > > then
> > > t_name=$(echo $name | cut -d " " -f5)
> > > echo $t_name
> > > fi
> > > done
> > > echo $t_name
> > > exit
> > >
> > > meu problema:
> > > Dentro do "if",quando eu mando escrever na tela e o resultado é escrito
> > > perfeito.
> > > agora fora do while (depois do done), o mesmo não aconteceu, a variavel
> > > esta
> > > vazia, o poque pode estar acontecendo??
> > >
> > > Abraços
> > >
> > > Eduardo
> > >
> > > [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]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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