【发布时间】:2013-10-30 23:57:51
【问题描述】:
我有一个简单的 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 的说法,脚本没有任何问题,我认为我正确地关注了this answer。 This answer 讨论了一个类似的问题(附加到循环内的字符串变量),并提出了一种不同的方法,我像这样使用:
#!/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
【问题讨论】:
-
我认为您所看到的是
curl没有得到谷歌的股票价格。您是否在循环中呼应股票和价格作为调试措施?如果第二种技术不能正常工作,那么问题出在数据上。第一个也应该可以,但是... -
@JonathanLeffler 看起来
curl正在获取数据。见编辑;我回应了股票和价格,并且数据被正确获取。
标签: bash