我有一个简单的 bash 脚本,它可以下载股票价格并将它们附加到一个变量中,然后输出:
#!/bin/bash
output=" "
for stock in GOOG AAPL
do
price=$(curl -s "http://download.finance.yahoo.com/d/quotes.csv?s=$stock&f=l1")
output+="$stock: $price "
done
echo "$output"
此脚本仅显示 AAPL: 524.896
,最后一条获取的数据。根据whatswrongwithmyscript,脚本没有任何问题,我认为我正确地遵循了这个答案。这个答案讨论了一个类似的问题(附加到循环内的字符串变量)并提出了一种不同的方法,我用这样的方法:
#!/bin/bash
output=" "
for stock in GOOG AAPL
do
price=$(curl -s "http://download.finance.yahoo.com/d/quotes.csv?s=$stock&f=l1")
output="$output$stock: $price "
done
echo "$output"
输出还是一样的。我在 debian jessie x64 上使用 bash 4.2.45。
更多信息
我在一个循环中回显了结果以进行调试,从第一个脚本中,这就是我得到的:
GOOG: 1030.42
AAPL: 524.896
AAPL: 524.896
第二个脚本给出了同样的结果:
GOOG: 1030.42
AAPL: 524.896
AAPL: 524.896