array [@] output all messed up?

5

Eu tenho este código:

Unix+=("Stock List")
while read line; do 
  result=$(wget -O - -o /dev/null "http://finance.yahoo.com/d/quotes.csv?s=$line&f=sl1&e=.csv" | tr ',' '    ' | tr '"' ' ')
  Unix+=("$result")
done < stock.txt

echo ${Unix[@]}
echo ${Unix[0]}
echo ${Unix[1]}
echo ${Unix[2]}

que lê um arquivo de texto com apenas estas linhas:

SXX.L
QPP.L

E gera isso:

 QPP.L 14.2495.L 27.50
Stock List
SXX.L 27.50
QPP.L 14.2495

Por que a informação array[@] de saída está faltando e está desarrumada?

    
por user31459 30.01.2013 / 19:43

1 resposta

6

Execução com #! / bin / bash -x mostra:

+ echo Stock List SXX.L $'27.50\r' QPP.L $'14.2495\r'

Isso provavelmente será o que está atrapalhando a saída. Ele move o cursor de volta para o começo da linha, e o que vier depois substitui o que já está lá.

    
por 30.01.2013 / 20:46