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