68 lines
1.5 KiB
Bash
68 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# NAME
|
|
# getStockHistory -- Downloads historic stock prices for a given company stock.
|
|
#
|
|
# SYNOPSIS
|
|
# getStockHistory symbol [optional saveLocation]
|
|
# getStockHistory -f file [optional saveLocation]
|
|
#
|
|
# DESCRIPTION
|
|
# The getSockHistory command attempts to download complete stock history for a given company or
|
|
# for list of companies in a file.
|
|
#
|
|
# OPTIONS
|
|
# -f Use a file to have a list of stock symbols to download. Each stock symbol should be on a
|
|
# differnt line in the file.
|
|
#
|
|
#
|
|
# EXAMPLES
|
|
# The following downloads Apple's stock history.
|
|
# getStockHistory AAPL
|
|
#
|
|
# BUGS
|
|
#
|
|
# Written by: Rowland O'Flaherty (rowland.oflaherty@gmail.com)
|
|
# Created on: 02/08/10/
|
|
|
|
function getHistory() {
|
|
stockSymbol=$1
|
|
if [[ -z $stockSymbol ]]
|
|
then
|
|
echo "Invalid stock symbol"
|
|
exit 1
|
|
fi
|
|
stockSymbol=$(echo $stockSymbol | tr '[:lower:]' '[:upper:]')
|
|
saveLocation=$2
|
|
wget -q -O ${stockSymbol}.csv "http://ichart.finance.yahoo.com/table.csv?s=${stockSymbol}&ignore=.csv"
|
|
sed '1s/\ /_/g' ${stockSymbol}.csv > ${stockSymbol}.tmp
|
|
mv ${stockSymbol}.tmp ${stockSymbol}.csv
|
|
mv ${stockSymbol}.csv ${saveLocation}
|
|
}
|
|
|
|
fOpition=false
|
|
while getopts :f OPTION
|
|
do
|
|
case $OPTION in
|
|
f)
|
|
fOpition=true
|
|
;;
|
|
'?')
|
|
echo "Invalid option $OPTARG"
|
|
;;
|
|
esac
|
|
done
|
|
if [[ "$fOpition" = "true" ]]
|
|
then
|
|
fileLocation=$2
|
|
saveLocation=$3
|
|
saveLocation=${saveLocation:=$HOME/Downloads}
|
|
for aSym in $(cat $fileLocation)
|
|
do
|
|
eval "getHistory $aSym $saveLocation"
|
|
done
|
|
else
|
|
saveLocation=$2
|
|
saveLocation=${saveLocation:=$HOME/Downloads}
|
|
eval "getHistory $1 $saveLocation"
|
|
fi |