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

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

Re: [shell-script] Direcionar saida de comandos para o read


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Direcionar saida de comandos para o read
Date: Thu, 25 Sep 2008 20:51:12 -0300

Salve!

O problema é que ele rodou na seqüência os dois testes. No primeiro ele seta
o IFS para :

O resto já ficou na cara, né?

Abraço!

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP

2008/9/25 Julio C. Neves <address@hidden>

> Fala Klaus,
> no primeiro exemplo, já te expliquei no e-mail anterior que aquela sintaxe
> só é aceita em Unix, no segundo caso, deve haver algo errado, pois não
> consegui reproduzir o seu resultado. Veja:
>
> $ while read Linha
> > do
> >     prim=$(echo "$Linha" | cut -f1 -d" ")
> >     seg=$(echo "$Linha" | cut -f2 -d" ")
> >     terc=$(echo "$Linha" | cut -f1 -d" ")
> >     echo "$prim"
> > done < arq
> 12345
> 12575
> 15488
>
> Abraços,
> Julio
>
>
>
> 2008/9/24 Klaus Jurgen Friedrich <address@hidden>
>
> >   Estou aprendendo shell script e encontrei com um problema de um exemplo
> > do
> >  livro Programação Shell Linux.
> >
> > Fiz algumas simplificaçoes nos exemplos.
> > Vejam:
> >
> > $ grep klaus /etc/passwd
> > klaus:x:1000:1000:klaus:/home/kurumin:/bin/bash
> >
> > $ IFS=:                 # tranformei a variavel $IFS em dois pontos.
> >
> > Ate aqui tudo bem, vejam agora:
> > # Joguei a saida do comando grep para o read armazenar nas variaveis:
> > #  $a $b $c $d $e $f  $g
> >
> > $ grep klaus /etc/passwd | read a b c d e f g
> >
> > # Nao criou a variavel $a
> > $ echo $a
> >
> > # Nao criou nenhuma variavel, vejam.
> > $ echo -e "$a\n$b\n$c\n$d\n$e\n$f\n$g"
> >
> > Fiz outro teste de um exemplo do livro, "O exemplo foi modificado por
> > motivo de simplificação.
> >
> > cat arquivo
> > 12345 1254 1235
> > 12575 4788 1547
> > 15488 9857 5289
> >
> > # direcionar o arquivo do final do script para o comando while.
> >
> > $ cat teste   # Conteudo do arquivo "teste"
> > while read Linha
> > do
> >     prim=$(echo "$Linha" | cut -f1 -d" ")
> >     seg=$(echo "$Linha" | cut -f2 -d" ")
> >     terc=$(echo "$Linha" | cut -f1 -d" ")
> >     echo "$prim"
> > done < arquivo
> >
> > # Executei o script e fiquei espantado
> > $ ./teste
> > 12345 1254 1235
> > 12575 4788 1547
> > 15488 9857 5289
> >
> > O grande problema eh que eu dei a instrucao ao script para mostrar
>  somente
> > a primeira variavel "$prim" na tela e somente armazenar a segunda
> variavel
> > $seg
> > e a terceira na variavel na variavel $tec
> > A primeira variavel $prim deveria ter somente o primeiro campo, a segunda
> > variavel somente o segundo campo e a terceira o teiceiro campo.
> > Por que aconteceu isso?
> >
> > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> > cara @ymail.com ou @rocketmail.com.
> > http://br.new.mail.yahoo.com/addresses
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
>
> --
> Abraços,
> Julio
> Em setembro estarei dando um treinamento
> Shell em São Paulo (em 2 fins de semana).
> Mais informações: www.4linux.com.br
> Tel: (11) 2125-4747
>
>
> [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]



reply via email to

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