我有这个代码:
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 可能会扰乱输出。它将光标移回到行的开头,之后的任何内容都会覆盖已经存在的内容。