Files
cs6601p3/data/getStockHistory

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