check if a string is numeric


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting check if a string is numeric
# 1  
Old 11-10-2011
check if a string is numeric

I checked all the previous threads related to this and tried this.
My input is all numbers or decimals greater than zero everytime.
I want to check the same in the korn shell script.
Just validate the string to be numeric.
This is what I am doing.

Code:
 
var="12345"
if  [[ "$var" !=  +([0-9]) -o  "$var"  != +([0-9]).+([0-9]) ]] ; then
echo "not numric" 
else
echo "it is numeric"
fi

I get a syntax error -o unexpected.
-o is used as a logical or operator right ?
Please let me know if am doing something wrong.
# 2  
Old 11-10-2011
|| is a boolean or
# 3  
Old 11-10-2011
How about this thread?
# 4  
Old 11-10-2011
Code:
$ var=123A24
$ echo $var | grep -q "^[0-9]*$" && echo "OK" || echo "Not OK"
Not OK
$ var=12345
$ echo $var | grep -q "^[0-9]*$" && echo "OK" || echo "Not OK"
OK

# 5  
Old 11-10-2011
Since you have the Korn shell you can do this:

Code:
[ ! -z "$VAR" -a -z "${VAR/[0-9]*/}" ] && echo "$VAR is all-numeric"

# 6  
Old 11-10-2011
Quote:
Originally Posted by Corona688
Since you have the Korn shell you can do this:

Code:
[ ! -z "$VAR" -a -z "${VAR/[0-9]*/}" ] && echo "$VAR is all-numeric"

I think the OP wanted to cover the floats as well as the ints.
# 7  
Old 11-10-2011
The problem with your expression is that the number may contain a + and/or a decimal point or it may not but you arent making that clear to ksh so how about a simpler regular expression like...
Code:
var="12345"

if  [[ "$var" = *([+-])*([0-9])*(.)*([0-9]) ]]; then
    echo "it is numeric"
else
    echo "not numeric" 
fi

This User Gave Thanks to shamrock For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check whether input is numeric

Hello there, find below for my code first: $pdp_asaba=`cat /tmp/temp_total | grep asaba | sed 's/*//g'` if ]] then pdp_asaba=0 fi $pdp_abuja=`cat /tmp/temp_total | grep abuja | sed 's/*//g'` if ]] then pdp_abuja=0 fi $pdp_ojota=`cat /tmp/temp_total | grep ojota | sed 's/*//g'` if ... (3 Replies)
Discussion started by: infinitydon
3 Replies

2. Shell Programming and Scripting

Find the numeric value in a string and then check the max. value

hi, i have a string " 00000069 ThreadMonitor W WSVR0606W: Thread "WebContainer : 43|null" (00000069) was previously rep orted to be hung but has completed. It was active for approximately 47533430 milliseconds. There is/are 43 thread(s) in tot al in the server that still may be hung." ... (4 Replies)
Discussion started by: lovelysethii
4 Replies

3. Shell Programming and Scripting

How to check for a Numeric Value?

Using shell, I have a variable, how can I check that variable for a numeric value such as "41.0"? My program needs to do one things if the numeric value is found, and another if something else such as a string of letter is found. is there a specific character that denotes a numeral? The... (2 Replies)
Discussion started by: chagan02
2 Replies

4. Shell Programming and Scripting

How to check if a column is having a numeric value or not in a file?

Hi, I want to know, how we find out if a column is having a numeric value or not. For Example if we have a csv file as ASDF,QWER,GHJK,123,FGHY,9876 GHTY,NVHR,WOPI,623,HFBS,5386 we need to find out if the 4th and 6th column has muneric value or not. Thanks in advance Keerthan (9 Replies)
Discussion started by: keerthan
9 Replies

5. Shell Programming and Scripting

Check for Numeric output in Perl

Hi All, I would like to convert my below csh script to Perl. Can any expert help ? # To check for numeric input set tested1 = `echo "$tested"| awk '/^+$/'`; # To remove un-neccessary zeros set tested2 = `echo "$tested"|awk '{print $0+0}'`; (3 Replies)
Discussion started by: Raynon
3 Replies

6. Programming

check the given string is numeric or not.

Hi, how to check the given string is numeric or not , without converting ( using strtol...). for ex: if string is C01 - non-numeric data if string is 001 - numeric data TIA (11 Replies)
Discussion started by: knowledge_gain
11 Replies

7. Shell Programming and Scripting

check whether it is a non-numeric character

Below is the abstract of the script which is working fine. if ] then error_process "Invalid month format." return 1 fi I am doing validation for month and it errors if the value is > 12 or < 0. In addition, I want to add another condition to error if it... (2 Replies)
Discussion started by: sony_dada
2 Replies

8. Shell Programming and Scripting

to check variable if its non numeric

if test $b -ne then echo "\n\n\n\tPassword reset has been done successfully" else echo "\n\n\n\tAn error occurred" fi i want to check whether $b is non-numeric so how to do that? (3 Replies)
Discussion started by: sachin.gangadha
3 Replies

9. Shell Programming and Scripting

Check for numeric inputs

Hi All, How do i modify the below script such that if the input is numeric, it will give the numeric digit, else it will ouput "0" echo "xxx" | awk '/^+$/' (6 Replies)
Discussion started by: Raynon
6 Replies

10. Shell Programming and Scripting

How to check for a valid numeric input

Hi Folks, I'm using bash script. I would like to check whether input is a number or not.(Only positive numbers).. if space or non numeric is entered, it should say "invalid input". pls help.. thanks in adv. Br/// Vijay. (1 Reply)
Discussion started by: Vijayakumarpc
1 Replies
Login or Register to Ask a Question