Bash

大批@@@輸出都搞砸了?

  • January 30, 2013

我有這個程式碼:

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[@]輸出缺少資訊並搞砸了?

使用 #!/bin/bash -x 執行顯示:

+ echo 庫存清單 SXX.L $'27.50\r' QPP.L $'14.2495\r'

那些 \r 可能會破壞輸出。它將游標移回行首,之後的任何內容都會覆蓋已經存在的內容。

引用自:https://unix.stackexchange.com/questions/63122