array[@] 输出全乱了?

array[@] 输出全乱了?

我有这个代码:

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

读取仅包含这些行的文本文件:

SXX.L
QPP.L

并输出:

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

为什么输出array[@]缺少信息并且混乱?

答案1

使用 #!/bin/bash -x 执行显示:

+ echo 库存列表 SXX.L $'27.50\r' QPP.L $'14.2495\r'

这些 \r 可能会扰乱输出。它将光标移回到行的开头,之后的任何内容都会覆盖已经存在的内容。

相关内容