Bash
大批@@@輸出都搞砸了?
我有這個程式碼:
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 可能會破壞輸出。它將游標移回行首,之後的任何內容都會覆蓋已經存在的內容。