expr


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers expr
# 1  
Old 01-22-2004
Data expr

Hello!

I want to evaluate some mathematical expressions in a script and I try to use 'expr' command.
Unfortunatally, when I have, for example,
expr 8.2 + 6
the result is 'expr: non-numeric argument'
Why ?
I work on SunOs 5.7.

Thanks in advance
Nathe
# 2  
Old 01-22-2004
Seems like expr only accepts integers as operands.
# 3  
Old 01-22-2004
but when I read the man of expr, it's written:
DESCRIPTION
Concatenates arg's (adding separator spaces between them),
evaluates the result as a Tcl expression, and returns the
value. The operators permitted in Tcl expressions are a
subset of the operators permitted in C expressions, and they
have the same meaning and precedence as the corresponding C
operators. Expressions almost always yield numeric results
(integer or floating-point values). For example, the
expression
expr 8.2 + 6
evaluates to 14.2. Tcl expressions differ from C expres-
sions in the way that operands are specified. Also, Tcl
expressions support non-numeric operands and string com-
parisons.



So it should work, no ?
# 4  
Old 01-22-2004
What shell scripting are you trying to write actually? It sounds from the first post that you are writing a plain sh-like scripting using expr(1), but the manpage you quoted is a TCL manpage that describes expr in TCL, which accepts floating point arithmetic. If you are not dealing with TCL at all then you have simply read the wrong manpage.
# 5  
Old 01-22-2004
Well, I think you are right... I try to write a csh script. I don't know why I have the TCL notice for expr instead of sh one. I work in a standard cmdtool window...

Thank you
Nathe
# 6  
Old 01-22-2004
expr does not support floating point numbers.

One way around this is to use a shell that does support
floating point calculations. One such shell is ksh93. Another
is bash.

Another way is to make use of the bc(1) utility e.g.

result=`echo"8.2 + 6" | bc`

- Finnbarr
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Nn$( expr $n + 1)

HI there I am trying to understand Shell scripting to create my own, I am attempting a few examples can anyone tell me what this means?n=$( expr $n + 1)Tried looking on the internet, but just cannot find its anywhere :( .Help please (4 Replies)
Discussion started by: steve2015
4 Replies

2. Shell Programming and Scripting

If + expr

Hi I have bellow script: t1=`cat node1.txt | grep thread1 | cut -f2 -d '-'` t2=`cat node2.txt | grep thread2 | cut -f2 -d '-'` t3=`cat node1_rcat.txt | grep thread1 | cut -f2 -d '-'` t4=`cat node2_rcat.txt | grep thread2 | cut -f2 -d '-'` if ]; then echo "no restore" >> log.log... (6 Replies)
Discussion started by: primo102
6 Replies

3. Shell Programming and Scripting

Error with expr - "expr: syntax error"

Hi All, I'm writing a shell script in KSH, where I want to store the filename, total record count and actual record count of all the source files. The source files reside in 4 different sub-folders under the same root folder. Below is code: #!/usr/bin/ksh... (6 Replies)
Discussion started by: jagari
6 Replies

4. UNIX for Dummies Questions & Answers

expr ?!

Hey there i want to subtract the content from $b from $a. Each variable has got 18 values (normal numbers from 0 - 99). How can i subtract them? I know i have to use the expr command, this is what i have till now: a=`cat Tabelle.dat | awk {'print $4'} | awk -F: {'print $1'}` b=`cat... (1 Reply)
Discussion started by: Mad van Bert
1 Replies

5. Shell Programming and Scripting

the expr \*

$ cat > mtable #!/bin/sh # #Script to test for loop # # if then echo "Error - Number missing form command line argument" echo "Syntax : $0 number" echo "Use to print multiplication table for given number" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do echo "$n * $i = `expr $i \*... (1 Reply)
Discussion started by: jackel7777
1 Replies

6. Shell Programming and Scripting

expr command help

I'm trying to check if a variable'd string is only one character and use that in an if statement the only way I could find is: $expr "${var}" : . # expr STRING : regrep where the "." is the grep wildcard for any single character. Whats wrong with my code here and is there a... (3 Replies)
Discussion started by: Tewg
3 Replies

7. Shell Programming and Scripting

test expr VS [ expr ]

What is the difference between test expr VS . For example : if test 5 -eq 6 echo "Wrong" and if echo "Wrong" bot will give the same output as Wrong. Now, what is the difference between these two? though they are producing the same result why we need two? Any answer will be... (2 Replies)
Discussion started by: ashok.g
2 Replies

8. Red Hat

how to use expr

i am new to shell programming, currently using redhat linux of version 2.4.20-8. i have problem in executing expr command in the following shell script $ x=5 $ x='expr $x + 1' $ echo $x the output is displaying always expr $x + 1 Pls guide me for the above query (3 Replies)
Discussion started by: saikumarm80
3 Replies

9. Shell Programming and Scripting

getting error with expr

sum=0; cat op_api2 |while read word1 word2; do echo $word2 sum=`expr $word2 + $sum`; done echo $sum op_api2 ( file has this data ) ---------------------------- UsageSummary 1034 UsageSummary 1675 UnbilledUsage 175 UnbilledUsage 177 UnbilledUsage 177 UnbilledUsage 194 I want the... (2 Replies)
Discussion started by: bishweshwar
2 Replies

10. Shell Programming and Scripting

expr problem

Hi, in my ksh script expr 22 / 10 results as 2 but the actual result expected in 2.2. how do i get that result. Please help Thanks, (2 Replies)
Discussion started by: kotasateesh
2 Replies
Login or Register to Ask a Question