Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Shell Scripting Question: Here is my code, it runs. In my stocks.txt file (also

ID: 3591154 • Letter: S

Question

Shell Scripting Question: Here is my code, it runs. In my stocks.txt file (also found below) I have 4 stock symbols that I need to output. I get 4 outputs but it is the same one for all 4 boxes as you see when you run the code.

#
# for loop to process stock list
#
clear

while true
do
for stock in `cat stocks.txt`
do
wget -qO- http://finance.yahoo.com/d/quotes.csv?s=$stock&f=nl1c1v >data1

cat data1 | sed s/", "/" "/g >data2
mv data2 data1

change=`cat data1 | awk -F, '{print $3}'`
negative=`echo $change | grep "-" | wc -l`
positive=`echo $change | grep "+" | wc -l`

if [ $negative -eq 1 ]
then
#
# 1 = red, 0 = black
#
tput setab 1;
tput setaf 0;
else
if [ $positive -eq 1 ]
then
#
# 2 = green, 0 = black
#
tput setab 2;
tput setaf 0;
fi
fi

# Top left box
tput cup 1 10;
echo " "
tput cup 1 10;
echo " $stock"

name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 2 10;
echo " "
tput cup 2 10;
echo "$name"

price=`cat data1 | awk -F, '{print $2}'`
tput cup 3 10;
echo " "
tput cup 3 10;
echo "$price"

change=`cat data1 | awk -F, '{print $3}'`
tput cup 4 10;
echo " "
tput cup 4 10;
echo "$change"

volume=`cat data1 | awk -F, '{print $4}'`
tput cup 5 10;
echo " "
tput cup 5 10;
echo "$volume"

#Bottom left box
tput cup 7 10;
echo " "
tput cup 7 10;
echo " $stock"

name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 8 10;
echo " "
tput cup 8 10;
echo "$name"

price=`cat data1 | awk -F, '{print $2}'`
tput cup 9 10;
echo " "
tput cup 9 10;
echo "$price"

change=`cat data1 | awk -F, '{print $3}'`
tput cup 10 10;
echo " "
tput cup 10 10;
echo "$change"

volume=`cat data1 | awk -F, '{print $4}'`
tput cup 11 10;
echo " "
tput cup 11 10;
echo "$volume"


#Top right box
tput cup 1 30;
echo " "
tput cup 1 30;
echo " $stock"

name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 2 30;
echo " "
tput cup 2 30;
echo "$name"

price=`cat data1 | awk -F, '{print $2}'`
tput cup 3 30;
echo " "
tput cup 3 30;
echo "$price"

change=`cat data1 | awk -F, '{print $3}'`
tput cup 4 30;
echo " "
tput cup 4 30;
echo "$change"

volume=`cat data1 | awk -F, '{print $4}'`
tput cup 5 30;
echo " "
tput cup 5 30;
echo "$volume"

#Bottom right box
tput cup 7 30;
echo " "
tput cup 7 30;
echo " $stock"

name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 8 30;
echo " "
tput cup 8 30;
echo "$name"

price=`cat data1 | awk -F, '{print $2}'`
tput cup 9 30;
echo " "
tput cup 9 30;
echo "$price"

change=`cat data1 | awk -F, '{print $3}'`
tput cup 10 30;
echo " "
tput cup 10 30;
echo "$change"

volume=`cat data1 | awk -F, '{print $4}'`
tput cup 11 30;
echo " "
tput cup 11 30;
echo "$volume"


#Reset colors back to default
tput setaf 7;
tput setab 0;
sleep 2
done
done

Text file (stocks.txt)

MCD
AAPL
NKE
DIS

Explanation / Answer

check the code

#
# for loop to process stock list
#
clear
while true
do
for stock in `cat stocks.txt`
do
wget -qO- http://finance.yahoo.com/d/quotes.csv?s=$stock&f=nl1c1v >data1
cat data1 | sed s/", "/" "/g >data2
mv data2 data1
change=`cat data1 | awk -F, '{print $3}'`
negative=`echo $change | grep "-" | wc -l`
positive=`echo $change | grep "+" | wc -l`
if [ $negative -eq 1 ]
then
#
# 1 = red, 0 = black
#
tput setab 1;
tput setaf 0;
else
if [ $positive -eq 1 ]
then
#
# 2 = green, 0 = black
#
tput setab 2;
tput setaf 0;
fi
fi
# Top left box
tput cup 1 10;
echo " "
tput cup 1 10;
echo " $stock"
name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 2 10;
echo " "
tput cup 2 10;
echo "$name"
price=`cat data1 | awk -F, '{print $2}'`
tput cup 3 10;
echo " "
tput cup 3 10;
echo "$price"
change=`cat data1 | awk -F, '{print $3}'`
tput cup 4 10;
echo " "
tput cup 4 10;
echo "$change"
volume=`cat data1 | awk -F, '{print $4}'`
tput cup 5 10;
echo " "
tput cup 5 10;
echo "$volume"
#Bottom left box
tput cup 7 10;
echo " "
tput cup 7 10;
echo " $stock"
name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 8 10;
echo " "
tput cup 8 10;
echo "$name"
price=`cat data1 | awk -F, '{print $2}'`
tput cup 9 10;
echo " "
tput cup 9 10;
echo "$price"
change=`cat data1 | awk -F, '{print $3}'`
tput cup 10 10;
echo " "
tput cup 10 10;
echo "$change"
volume=`cat data1 | awk -F, '{print $4}'`
tput cup 11 10;
echo " "
tput cup 11 10;
echo "$volume"

#Top right box
tput cup 1 30;
echo " "
tput cup 1 30;
echo " $stock"
name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 2 30;
echo " "
tput cup 2 30;
echo "$name"
price=`cat data1 | awk -F, '{print $2}'`
tput cup 3 30;
echo " "
tput cup 3 30;
echo "$price"
change=`cat data1 | awk -F, '{print $3}'`
tput cup 4 30;
echo " "
tput cup 4 30;
echo "$change"
volume=`cat data1 | awk -F, '{print $4}'`
tput cup 5 30;
echo " "
tput cup 5 30;
echo "$volume"
#Bottom right box
tput cup 7 30;
echo " "
tput cup 7 30;
echo " $stock"
name=`cat data1 | awk -F, '{printf "%-14.14s", $1}'`
tput cup 8 30;
echo " "
tput cup 8 30;
echo "$name"
price=`cat data1 | awk -F, '{print $2}'`
tput cup 9 30;
echo " "
tput cup 9 30;
echo "$price"
change=`cat data1 | awk -F, '{print $3}'`
tput cup 10 30;
echo " "
tput cup 10 30;
echo "$change"
volume=`cat data1 | awk -F, '{print $4}'`
tput cup 11 30;
echo " "
tput cup 11 30;
echo "$volume"

#Reset colors back to default
tput setaf 7;
tput setab 0;
sleep 2
done
done

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote