check if a string is numeric


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting check if a string is numeric
# 8  
Old 11-10-2011
awesome !!!! That worked.

But when I know that every time the user will input only positive numbers should i still include + or - in code ?
# 9  
Old 11-10-2011
Quote:
Originally Posted by megha2525
awesome !!!! That worked.

But when I know that every time the user will input only positive numbers should i still include + or - in code ?
Depends if you can guarantee that 100% of the time...otherwise *(+-) will take care of the absence or presence of a plus/minus sign so ultimately its your choice.
# 10  
Old 11-11-2011
try this out
name=+1234
Code:
echo $name | awk '/[+|-][[:digit:]]|[[:digit:]]/  {print -1}'

# 11  
Old 11-11-2011
Hi shamrock

Code:
var="12345"

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

At the same time I also want to check if var is null. as in the user did not enter any value .The issue is the shell script must continue executing if the parameter is numeric ( integer or decimal ) or null .
How can i check for null value at the same time while i check for numeric values?
# 12  
Old 11-11-2011
I am fairly new to this forum so apologies if this has been posted before. Fairly close to Shamrock's, but I like this numeric check from Bolsky's "The New Kornshell":

Code:
#!/bin/ksh
isnum()
{
case $1 in
( ?([-+])+([0-9])?(.)*([0-9])?([Ee]?([-+])+([0-9])) )
return 0;;
( ?([-+])*([0-9])?(.)+([0-9])?([Ee]?([-+])+([0-9])) )
return 0;;
*) return 1;;
esac
}
myvar="-23.45"
isnum $myvar && echo "numeric" || echo "NOT numeric"

# 13  
Old 11-12-2011
Quote:
Originally Posted by megha2525
Hi shamrock

Code:
var="12345"

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

At the same time I also want to check if var is null. as in the user did not enter any value .The issue is the shell script must continue executing if the parameter is numeric ( integer or decimal ) or null .
How can i check for null value at the same time while i check for numeric values?
Then all you have to do is separate the numeric regular expression from the one that is null by a vertical bar...
Code:
if  [[ "$var" = ?(""|*([+-])*([0-9])*(.)*([0-9])) ]]; then

This User Gave Thanks to shamrock For This Post:
# 14  
Old 11-12-2011
Here is a simpler alternative if you are using ksh93:

Code:
declare -F foo
if (foo=$var) 2>/dev/null; then
    echo "it is numeric"
else
    echo "it is not numeric"
fi

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