expr command help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting expr command help
# 1  
Old 05-18-2011
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 better way to check if the input is 1 character?

also if i want to pass a variable into a arguement of another function like expr but the content of the variable might cause a syntax error if treat as other then a string, how do i escape ("\") the contents of the variable and not the variable call itself.

Last edited by Tewg; 05-18-2011 at 08:18 PM..
# 2  
Old 05-18-2011
Hi.

You could say:

Code:
if [ "${#var}" -eq 1 ]; then
  echo only one character long
else
  ...
fi

I've never found any cause to use "expr". Any modern shell has better ways of handling whatever it was good for.
# 3  
Old 05-18-2011
Thank you.

---------- Post updated at 06:32 PM ---------- Previous update was at 06:21 PM ----------

also if i want to pass a variable into a arguement of another function like expr but the content of the variable might cause a syntax error if treat as other then a string, how do i escape ("\") the contents of the variable and not the variable call itself.
# 4  
Old 05-18-2011
There's usually no compelling reason to use expr at all.

The man page says:
Quote:
Characters special to the command interpreter must be escaped.
I guess that part is left up to the imagination.

If that means using shell, eval, or sed, or whatever, then, whichever way you like.

Code:
$ X="\"3\""
$ echo $X
"3"

$ expr $X + 1
expr: non-numeric argument

$ eval expr $X + 1
4

$ Y=${X//\"}
$ echo $Y
3

$ expr $Y + 1
4

$ expr ${X//\"} + 1
4

etc.

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

expr to translate the date command

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. Write a script called "tod" that will display the time of day in am or pm notation rather then the 24 hour clock time. Use expr to convert from 24-hour clock time. Use... (13 Replies)
Discussion started by: linuxtraining
13 Replies

2. UNIX for Dummies Questions & Answers

substring without using expr command

Hi guys, For some reason the terminal on my mac does not let me run string manipulations commands using the expr command. I'm not sure how to fix this so I'm requesting a "work-around" to using the expr command... This is the string I'm working with: "neo_opls01_1.log" And I'm trying to... (9 Replies)
Discussion started by: ah7391
9 Replies

3. Shell Programming and Scripting

help with expr command in script

Hi, I am trying to code a unix function to calculate date difference between two date variables. I am stuck at a point where I am trying to convert hours into minutes. Below is the code I am doing. function get_elapsed_time { export PROPS_FILE=temp.properties export... (8 Replies)
Discussion started by: Nutan
8 Replies

4. Shell Programming and Scripting

expr command

Hi Can anyone explain me the usage of this command and the arguments used here and what will be the expected output : v_num=`expr nav_d_20100204_1759 : '*\(*\)'` what will be the value returned in v_num. Thanks in Advance!!! Regards Naveen Purbia (3 Replies)
Discussion started by: trying_myluck
3 Replies

5. UNIX for Dummies Questions & Answers

using the expr command

Hi friends how can i execute expr $va1 * $var2 provided i m not supposed to use '/' also the nglob variable is turned off. (4 Replies)
Discussion started by: ashishj
4 Replies

6. UNIX for Dummies Questions & Answers

problem with expr command

:) hi Unix gurus, Pls consider the following piece of code str='hello' length=echo $str|wc -c echo $length y= ` expr \( 80 - $length \) ` echo $y :confused: The last echo stmt is displaying 0 as the result. If i put direct value like 6 instead of $length in i 3rd stmt it is giving... (8 Replies)
Discussion started by: ravi raj kumar
8 Replies

7. UNIX for Dummies Questions & Answers

expr command

hi guys.... i hava a command expr... where i m adding a value in a loop like Tc=`expr $Tc\+ $l` where Tc is declred as a variable and every time l contains a new vaue if Tc =0 initially and l =2 Tc should be equal to 0+ 2 and then l = 4 Tc = 2+4 and dispaly as 6 but after... (5 Replies)
Discussion started by: madhu_aqua14
5 Replies

8. Shell Programming and Scripting

about accecing `expr` command

Hi All, I have created 85 users on Linux server. I use bsh shell for all users.But after any user get logged in on unix,he/she is not able to access the expr command.So anyone can tell me that if i have to include some files to access expr command.Because when i write-> expr 6+2 on $ prompt i'll... (1 Reply)
Discussion started by: bhumi
1 Replies

9. UNIX for Dummies Questions & Answers

Problems with expr command

Hi All, I might be making a silly mistake but I need ur help. I have initialized various variables: cur_month=`date +%m` cur_year=`date +%y` last_year=`expr $cur_year \- 1` It works fine for cur_month & cur_year....but has problems with last_year. FOR LAST YEAR IT GIVES A FOLLOWING... (2 Replies)
Discussion started by: rooh
2 Replies

10. UNIX for Dummies Questions & Answers

expr command

I am looking for the correct syntax on the expr command in UNIX. I have a script that I am building at the moment. the script is creating file1 that is an actual .sql file that is going inside the oracle database to get some information in there. It take that information, puts it inside another... (2 Replies)
Discussion started by: wolf
2 Replies
Login or Register to Ask a Question