Check if argument passed is an integers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Check if argument passed is an integers
# 1  
Old 11-01-2002
Check if argument passed is an integers

How do I check if the argument passed to a script is an integer?

I am writting a script that will take to integers and want to be able to check before I go on.


I am using bourne shell.

Thanks in advance
# 2  
Old 11-01-2002
Code:
echo $string | grep "^[0-9]+$"
echo $?

$? will be 0 only if $string is a sequence of digits and nothing else...
# 3  
Old 11-04-2002
Sorry but that does not work.

I have this script that is working except for negative integers or when someone enters a + infront of the integer.

Why isn't this accepting negative integers or integer with a + sign?


#!/bin/sh
checkinput()
{
case $1 in [0-9]|[0-9]*[0-9][\.]) return 0 ;; esac
return 1
}

exitusage()
{
echo "Usage: Proj2 Integer1 Integer2"
exit
}

[ $# -ne 2 ] && exitusage
checkinput $1 || exitusage && A=$1
checkinput $2 || exitusage && B=$2

Thanks in advance
# 4  
Old 11-04-2002
replace your checkinput() func with this...

Code:
checkinput() 
{ 

echo $1 | grep '^(\+|-)?[0-9]+$'

return $?

}

you may find this helpful...

[\?&]value= A URL parameter value in a URL.

[A-Z]Smilie\\[A-Z0-9_]+)+ An uppercase DOS/Windows full path that (a) is not the root of a drive, and (b) has only letters, numbers, and underscores in its text.

[A-Za-z][A-Za-z0-9_]* A ColdFusion variable with no qualifier.

([A-Za-z][A-Za-z0-9_]*)(\.[A-Za-z][A-Za-z0-9_]*)? A ColdFusion variable with no more than one qualifier; for example, Form.VarName, but not Form.Image.VarName.

(\+|-)?[1-9][0-9]* An integer that does not begin with a zero and has an optional sign.

(\+|-)?[1-9][0-9]*(\.[0-9]*)? A real number.

(\+|-)?[1-9]\.[0-9]*E(\+|-)?[0-9]+ A real number in engineering notation.

a{2,4} Two to four occurrences of "a": aa, aaa, aaaa.

(ba){3,} At least three "ba" pairs: bababa, babababa, and so on..


Cheers!
Vishnu.

Last edited by Vishnu; 11-04-2002 at 04:32 PM..
# 5  
Old 11-04-2002
I certanly apreciate all your help. but this:
checkinput()
{

echo $1 | grep '^(\+|-)?[0-9]+$'

return $?

}

doesn't work either. I'll keep tryng.

Thanks a million.
# 6  
Old 11-04-2002
it is always a good idea to test things on command line before putting in a script.. which I hope you are already doing..

you can do few tests echoing the return code...

echo -3243 | grep '^(\+|-)?[0-9]+$'
echo $?

echo -abc | grep '^(\+|-)?[0-9]+$'
echo $?

let me know if these tests work on your unix system...

Cheers!
Vishnu.
# 7  
Old 11-04-2002
Quote:
Originally posted by Vishnu
checkinput()
{

echo $1 | grep '^(\+|-)?[0-9]+$'

return $?

}
I think you need to use -E with grep to invoke extended regular expressions. But also, if the argument passes the test, it will go to stdout. The -q option will fix that. So try this:
Code:
checkinput() 
{ 

echo $1 | grep -Eq '^(\+|-)?[0-9]+$'

return $?

}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Getting number of argument passed to a shell script

Hi Experts, I have been trying to work on a simple shell script that will just add the two argument passed to it. Here is what i tried : #!/bin/bash welcome(){ echo "Welcome to this Progg. which will accept two parameter" } main_logic(){ arg=$# echo "Number of argument passed is... (4 Replies)
Discussion started by: mukulverma2408
4 Replies

2. How to Post in the The UNIX and Linux Forums

Read a json file passed as cmd line argument

usage: myscript.sh config.json config.json: { "HOST":"abc", "DB_NM":"xyz", "USR_NM":"asd", "PWD":"xxx", ......... ......... ......... ........ } myscript.sh: (2 Replies)
Discussion started by: RGRT
2 Replies

3. Shell Programming and Scripting

Grep float/integers but skip some integers

Hi, I am working in bash in Mac OSX, I have following 'input.txt' file: <INFO> HypoTestTool: >>> Done running HypoTestInverter on the workspace combined <INFO> HypoTestTool: The computed upper limit is: 11 +/- 1.02651 <INFO> HypoTestTool: expected limit (median) 11 <INFO> HypoTestTool: ... (13 Replies)
Discussion started by: Asif Siddique
13 Replies

4. Shell Programming and Scripting

Variable passed as argument

I have a script. #!/bin/sh cur_$1_modify_time=Hello echo "cur_$1_modify_time" When I run like sh /root/script1 jj I expect value "Hello" being assigned to variable "cur_jj_modify_time" and output being "Hello" ie echoing $cur_jj_modify_time But the output comes as # sh... (3 Replies)
Discussion started by: anil510
3 Replies

5. Shell Programming and Scripting

Shell script that check the argument passed to it and prints error if test condition is not met

I want to make a script that check for the argument passed to it and generates an error in case any character/string argument passed to it. I am using below code, but its not working. can anyone help. #!/bin/bash if ]; then echo 'An integer argument is passed to the script hence... (3 Replies)
Discussion started by: mukulverma2408
3 Replies

6. Shell Programming and Scripting

shell script for ftp files passed in command line argument

i want to write a shell script function that will ftp the files passed in the command line . i have written a shell script for ftp but how will it do for all files passed in command line argument , i am passing 4 files as argument ./ftp.sh file1 file2 file3 file4 code written by me... (5 Replies)
Discussion started by: rateeshkumar
5 Replies

7. Shell Programming and Scripting

Check if passed arguments is users

i want to check passed arguments one by one and if it is user print home director of that user (3 Replies)
Discussion started by: testman84
3 Replies

8. Shell Programming and Scripting

File not recognized when passed as argument

I have the below script in file read_file.ksh if ] || ] then echo "Required one input file" echo "Enter a file to get char count:" read $FILE_NAME if ] then echo "valid file" else echo "Not a valid file." fi When run as read_file.ksh detail.csv or... (9 Replies)
Discussion started by: michaelrozar17
9 Replies

9. Shell Programming and Scripting

How to check that passed parameters all have the same extension?

$ ls monkey.txt banana.csv tree.txt $ myscript monkey.txt tree.txt All extensions ARE alike. $ myscript *txt All extensions ARE alike. $ myscript monkey.txt banana.csv All extensions are NOT alike. $ myscript * All extensions are NOT alike. My brain has given up; what's the simplest... (11 Replies)
Discussion started by: cs03dmj
11 Replies

10. Shell Programming and Scripting

how to print all argument passed

like i have script with which i have passed arg list :eg: i/p: scriopt1 arg1 arg2 arg3 .... argn o/p: arg1 arg2 arg3 .... argn (2 Replies)
Discussion started by: RahulJoshi
2 Replies
Login or Register to Ask a Question