How to validate input parameters?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to validate input parameters?
# 1  
Old 04-03-2010
How to validate input parameters?

Hi,

I wonder how I can know if the input parameters to the script are numbers or text


Thanks
# 2  
Old 04-03-2010
use tr, run the input parameter though a filter, and see if the output is equal to the input.

---------- Post updated at 01:47 PM ---------- Previous update was at 01:41 PM ----------

use tr, run the input parameter though a filter, and see if the output is equal to the input.
Code:
out=`echo $input|tr blah blah`
if [ $input != $out ]

# 3  
Old 04-03-2010
What I do is the following:
Code:
if [ $1 is a number ] then
...
else
...
fi

Quote:
Originally Posted by jgt
use tr, run the input parameter though a filter, and see if the output is equal to the input.

---------- Post updated at 01:47 PM ---------- Previous update was at 01:41 PM ----------

use tr, run the input parameter though a filter, and see if the output is equal to the input.
Code:
out=`echo $input|tr blah blah`
if [ $input != $out ]

# 4  
Old 04-03-2010
This is a very good question! I have a ksh function dealing with exactly this im my library.

Lets start with an integer: an integer is a sequence of digits 0-9 preceeded optionally with a plus or a minus sign:

Code:
# i assume the string in question was passed as argument $1 here
if [ -n "$(print - $1 | sed 's/[+-]*[0-9][0-9]*//')" ] ; then
     print - "string is not an integer"
else
     print - "string is an integer"
fi

The sed statement will delete out a possible integer and if the remaining string still contains characters ("-n") it can't be an integer. This mechanism is the core of my f_CheckInteger() function.

General numerics are a bit more complicated. I didn't bother to implement localized decimal separators (americans write "123.4", germans write "123,4", etc.) or something such, so i ended with the quite simple definition:

A numerical value is a string consisting of an optional plus/minus sign, followed by one or more digits 0-9, optionally followed by a full stop "." followed by one or more digits 0-9.

These are valid numbers according to this definition: 0.123 123 123.0, -123.4
These are not valid numbers: 0..123 0.123.456 123. +-12

Code:
# i assume the string in question was passed as argument $1 here
if [ -n "$(print - $1 | sed 's/[+-]*[0-9][0-9]*\(\.[0-9][0-9]*\)*//')" ] ; then
     print - "string is not a numeric"
else
     print - "string is a numeric"
fi

I hope this helps.

bakunin
# 5  
Old 04-03-2010
Shell only
Code:
#!/bin/sh
while [ $# -gt 0 ]; do
  case "$1" in
    *[!1-9]*)   echo "Text: $1";;
    *)          echo "Number: $1"
  esac
  shift
done

# 6  
Old 04-03-2010
MySQL

Hi Gengis-Kahn
I write a script I hope that you want to this like..

Code:
[root@rhnserver ~]# cat script.sh
if [[ "$1" = *[[:alpha:]]* && "$1" = *[[:digit:]]* ]] ; then
        echo "Your parameter is alpha numeric"
else
        if [[ "$1" = *[[:digit:]]* ]] ; then
                echo "Your parameter is numeric"
        else
                if [[ "$1" =  *[[:alpha:]]* ]] ; then
                        echo "Your parameter is a character"
                else
                        echo "Your paramter is different type(except number or character)"
                fi
        fi
fi

A few examples :

Code:
[root@rhnserver ~]# ./script.sh 12121asa
Your parameter is alpha numeric
[root@rhnserver ~]# ./script.sh 12121
Your parameter is numeric
[root@rhnserver ~]# ./script.sh sasasasqsq
Your parameter is a character

# 7  
Old 04-03-2010
Thank you very much for the help! Now I have to study the code
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Validate input files daily

We have a job which we need to run on daily bases, before loading data in a table we need to validate whether the input file is received or not. Daily client will place the files in a particular path.Below files which I need to process for 04/01/2013(Load date).... (2 Replies)
Discussion started by: katakamvivek
2 Replies

2. Shell Programming and Scripting

Validate input files and update

We have a job which we need to run on daily bases, before loading data in a table we need to validate whether the input file is received or not.Inputfile formatsrc_sps_d_Call_Center_Reporting_yyyymmdd_01.dat SPS-Service nameYYYY-yearMM-MonthDD-dayLike above we will get n number of files for... (1 Reply)
Discussion started by: katakamvivek
1 Replies

3. Shell Programming and Scripting

How to validate user's input..?

$Input_filename=$ARGV; if (!-d $Input_filename && ! -e $Input_filename) { print "USAGE: Please enter '$ABCD/def/dsed.txt' as an arguement \n"; exit; } 1. Input Is suppose to be something like "$ABCD/def/dsed.txt". if the input is wrong the script should throw an ERROR message.... (2 Replies)
Discussion started by: Rashid Khan
2 Replies

4. Shell Programming and Scripting

Epic - Validate input size

Is there an easy way to validate an input field size. Let us say a script is asking to enter 10 digits mobile number, how do I write a script to validate it is numeric and is 10 digits in length? I just need an easy way w/o using looks ...etc. Is there such a away ? Here is what I have so far... (6 Replies)
Discussion started by: mrn6430
6 Replies

5. Shell Programming and Scripting

Another validate input Question.

I'm writing a bash shell script to 'help' me post to susepaste (I can NEVER remember the time options). Here's the code: #!/bin/bash ########## # # Project : personal script. # Started : Wed Aug 03, 2011 # Author : Habitual # Description : susepaste c-li script with user... (5 Replies)
Discussion started by: Habitual
5 Replies

6. Shell Programming and Scripting

Validate and sort input

Hi, This will most likely be a simple answer. Currently I have a situation where my script will be sent various options: -o1 -o2 -oe3@somthing.com Now, if I want to run a certain command based on the option I am sent, I am doing the following. for o in $(echo $options) do if ... (3 Replies)
Discussion started by: stuaz
3 Replies

7. UNIX for Dummies Questions & Answers

BASH validate user input

Hey, im trying to validate a user input and need some help. The input needs to be just a single letter. Im using a case to so this eg: read answer case $answer in *) echo "OK" ;; *) echo "This is a number" read answer ;; *) echo... (2 Replies)
Discussion started by: 602chrislys
2 Replies

8. Shell Programming and Scripting

validate input

the user inputs names that have to be inside square brackets I want to check if the user puts the brackets and if not ask him to re-enter the names (9 Replies)
Discussion started by: DDoS
9 Replies

9. Shell Programming and Scripting

Need to validate a date input format

Hi all, I have a shell script(K shell) which takes a date as input. i want the input to be in DD-MM-YYYY format. Can i enforce such a format of input string using just one line of code? OR do i need to parse the input date into different components and test them using Case statements... (2 Replies)
Discussion started by: rajugp1
2 Replies

10. Shell Programming and Scripting

How to validate input values

Hi How would i validate value of a variable whether it is number,date or string Thanks in advance Sas (5 Replies)
Discussion started by: SasDutta
5 Replies
Login or Register to Ask a Question