#!/bin/bash
while true
do
?????if [[ $# -eq 0 ]] ; then
?????????echo Enter operand1 value:
?????????read operand1
?
?????????# Offer choices
?????????echo 1. Addition
?????????echo 2. Subtraction
?????????echo 3. Multiplication
?????????echo 4. Division
?????????echo 5. Exit
?
?????????echo Enter your choice:
?????????read choice
?????????if [[ $choice != 1 || 2 || 3 || 4 || 5 ]] ; then
?????????????echo Sorry $choice is not a valid operator - please try again?
?????????????echo Enter your choice:
?????????????read choice
?????????else?
?????????????Continue?
?????????fi
?
?????????echo Enter operand2 value:
?????????read operand2
?
?????????# get operands and start computing based on the user's choice
?????????if [[ $choice -eq 1 ]] ; then
?????????????echo ----------------------------------------
?????????????echo Addition of $operand1 and $operand2 is $((operand1+operand2))
?????????????echo ----------------------------------------
?????????????echo
?????????elif [[ $choice -eq 2 ]] ; then
?????????????echo ----------------------------------------
?????????????echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
?????????????echo ----------------------------------------
?????????????echo
?????????elif [[ $choice -eq 3 ]] ; then
?????????????echo ----------------------------------------
?????????????echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
?????????????echo ----------------------------------------
?????????????echo
?????????elif [[ $choice -eq 4 && operand2 -eq 0 ]] ; then
?????????????echo Can not divide by 0 please try again?
?????????????echo Please enter operand2
?????????????read operand2
?????????????echo ----------------------------------------
?????????????echo Division of $operand1 and $operand2 is $((operand1/operand2))
?????????????echo ----------------------------------------
?????????????echo
??????????elif [[ $choice -eq 4 && operand2 -ne 0 ]] ; then
?????????????echo ----------------------------------------
?????????????echo Division of $operand1 and $operand2 is $((operand1/operand2))
?????????????echo ----------------------------------------
?????????????echo
?????????elif [[ $choice -eq 5 ]] ; then
?????????????exit
?????????else
?????????????echo ----------------------------------------
?????????????echo Invalid choice.. Please try again
?????????????echo ----------------------------------------
?????????????echo
?????????fi ????
???else
?????????????echo ----------------------------------------
?????????????echo You either passed too many parameters or too less
?????????????echo than the optimum requirement.
?????????????echo
?????????????echo This program accepts a maximum of 2 arguments or no
?????????????echo argument at all in order to run successfully.
?????????????echo ----------------------------------------
???fi
done
I am looking to add functionality to the above code so that each subsequent operation will use the previous result, prompt the user for the next operator and operand so that the user doesn't have to enter the first operand again and it simply stores it in memory. I cant seem to think of any ways to do this - any advice?
See Question&Answers more detail:os