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á.
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?
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á.
Tags bash text-processing newlines array