Visit Our UNIX and Linux User Community


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 05: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 $?

}


Previous Thread | Next Thread
Test Your Knowledge in Computers #218
Difficulty: Easy
A peer-to-peer network sets all connected computers equal and all connected computers share the same abilities to use resources available on the network.
True or False?

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

Featured Tech Videos