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

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

Dica: while read


From: Carlos Felicio
Subject: Dica: while read
Date: Fri, 04 Nov 2005 10:13:49 -0200
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)

Pessoal,

Ha algum tempo atrás me passaram uma dica:

while read var1 var2; do
<comandos>
read varErro
done < arquivo

Esse loop é bom pois voce consegue separar os campos direto no loop, e ele faz a leitura do arquivo uma linha por vez. O problema que encontrei foi ao tentar usar um comando read dentro do loop: O script simplesmente "passava reto" pelo comando (nao lia a varErro), ignorando o input que o usuario precisava dar.

Depois de quebrar a cabeça, encontrei a solução e a explicação: Quando se usa o read no loop, ele redireciona o input para o arquivo, ignorando o input do usuario. Para corrigir:

while read var1 var2; do
<comandos>
read varErro <&3
done 3<&1 <arquivo

Ou seja, sao poucas modificações. Se alguem quiser ler o topico que encontrei a solução:

http://groups.google.com/group/comp.unix.shell/browse_thread/thread/661d9cd611638d49/8d3c98e09feb7f12#8d3c98e09feb7f12

Falow
Carlos


reply via email to

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