[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]