![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| expr question | low90s | UNIX for Dummies Questions & Answers | 3 | 04-29-2008 06:52 AM |
| how to use expr | saikumarm80 | Linux | 1 | 11-30-2007 10:00 AM |
| expr command | madhu_aqua14 | UNIX for Dummies Questions & Answers | 5 | 03-05-2007 02:26 PM |
| how do I get the value of expr with ksh | krishna | UNIX for Advanced & Expert Users | 3 | 08-26-2001 10:51 AM |
| expr command | wolf | UNIX for Dummies Questions & Answers | 2 | 07-30-2001 10:43 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
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 |
| Forum Sponsor | ||
|
|
|
|||
|
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 ? |
|
|||
|
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.
|
|
|||
|
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 |
|||
| Google The UNIX and Linux Forums |