arithmatic


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting arithmatic
# 1  
Old 09-14-2012
Error arithmatic

Hi Guys,

I am relatively new to scripting at the moment and am struggling to get the following function to work. For some reason it does not recognise the arithmatic symbol when i select option1. Any help would be greatly appreciated.

Code:
 
menu ()
{
echo "=============="
echo "Calculator"
echo "=============="
echo "1. Divide"
echo "2. Multiply and Subtract"
echo "3. Quit"
read choice
case $choice in
1) option1 ;;
2) option2 ;;
3) exit 0 ;;
*) echo "invalid option" ;;
esac
}

option1 ()
{
a=$1
b=$2
c=$(($a/$b))
echo "**********"
echo "****"$c"****"
echo "**********"
}
menu

# 2  
Old 09-14-2012
Syntax is fine for bash...
Code:
$ a=10 b=2 c=$(($a/$b))

$ echo $c
5

What shell are you using?
# 3  
Old 09-14-2012
Oh I see the problem. $1 and $2 are local to functions but you are not passing parameters to the function. Perhaps define a and b outside of the functions, e.g...
Code:
$ cat sh.1
menu ()
{
echo "=============="
echo "Calculator"
echo "=============="
echo "1. Divide"
echo "2. Multiply and Subtract"
echo "3. Quit"
read choice
case $choice in
1) option1 ;;
2) option2 ;;
3) exit 0 ;;
*) echo "invalid option" ;;
esac
}

option1 ()
{
c=$(($a/$b))
echo "**********"
echo "****"$c"****"
echo "**********"
}
a=$1
b=$2
menu

$ sh sh.1 50 5
==============
Calculator
==============
1. Divide
2. Multiply and Subtract
3. Quit
1
**********
****10****
**********

$

This User Gave Thanks to Ygor For This Post:
# 4  
Old 09-14-2012
MySQL

I am using a bash shell. This is the error message i keep getting:

ex2: line 23: /: syntax error: operand expected (error token is "/")

any ideas?

---------- Post updated at 02:46 PM ---------- Previous update was at 02:42 PM ----------

Thank you that makes perfect sense.
# 5  
Old 09-14-2012
Quote:
Originally Posted by somersetdan
I am using a bash shell. This is the error message i keep getting:

ex2: line 23: /: syntax error: operand expected (error token is "/")

any ideas?

---------- Post updated at 02:46 PM ---------- Previous update was at 02:42 PM ----------

Thank you that makes perfect sense.
What is the line 23 ?
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk: round output or delimit output of arithmatic string

I have a file with the following content. > cat /tmp/internetusage.txt 6709.296322 30000 2/7/2010 0.00I am using the following awk command to calculate a percentage from field 1 and 2 from the file. awk '{ print $1/$2*100 }' /tmp/internetusage.txt This outputs the value "22.3643" as a... (1 Reply)
Discussion started by: jelloir
1 Replies

2. UNIX for Dummies Questions & Answers

Trying a arithmatic on a command line vs scripting.

Hi Everyone! I'm trying to do simple math on a single command line instead of a script which I've already set up using let etc. I can not get the same output to display on a command line. Essentially I would like a=20, b=50, and c=a*b. When I tried: let "A=20, B=50"; let C=A*B; echo $C ... (2 Replies)
Discussion started by: CasperQuiet
2 Replies

3. Shell Programming and Scripting

arithmatic with awk

hi, i am trying some awk arthmatic calculation,i have a problem if any one can help let say if i have a file exm.txt 3 + 2 3 * 2 3 / 2 3 - 2 the output expected is awk -f exm.awk exm.txt 3 + 2 = 5 3 * 2 = 6 3 / 2 = 1.5 3 - 2 = 1 i simply used exm.awk { print $1 " + " $3 "= " $1 +... (3 Replies)
Discussion started by: phone_book
3 Replies

4. Shell Programming and Scripting

Unix Arithmatic operation issue , datatype issue

Hi, I have a shell scripting. This will take 7 digit number in each line and add 7 digit number with next subsequent lines ( normal addition ). Eg: 0000001 0000220 0001235 0000022 0000023 ........... ......... ........ Like this i am having around 1500000 records. After adding... (23 Replies)
Discussion started by: thambi
23 Replies

5. Shell Programming and Scripting

KSH arithmatic Integer overflow

Guys, I have two big numbers to multiply. In doing do I am getting integer overflow. I managed to multiply number but this number is useless as KSh does not recognise it as a valid number. Here is what I am doing $ expr 999999999999 \* 100 276447132 I got the right value by doing... (2 Replies)
Discussion started by: vikas_sri
2 Replies
Login or Register to Ask a Question