Visit Our UNIX and Linux User Community


Basic number checking problem


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Basic number checking problem
# 1  
Old 09-21-2009
Basic number checking problem

Hello all

I am having problems using a bash script to read the input from the user and checking that its a valid number. I only want the user to input a maximum of a 3 number string (321 , 521 , 871 etc.). Anything longer or that includes a chararcter or symbol will display an error message.

heres what i have got so far

Code:
 
read input
 
        for ((x=1;x<4;x++)){
        v=`echo $input | cut -c $x`
        if [ $v !-eq (0-9) ]
        then
        echo "error"
        else
        continue
        fi
        }

# 2  
Old 09-21-2009
works in bash:

Code:
for (( i=1 ; i<4 ; i++))
 do  
  read a 
  echo $a | egrep -w "[0-9]{1,3}" || echo "wrong input"
 done

# 3  
Old 09-21-2009
Hi ChrisHoogie,

grep will make it much easier!
Code:
read input
if egrep -q '^[0-9]{1,3}$' <<< "$input"; then
    your command here
else
    echo error
fi



---------- Post updated at 11:14 ---------- Previous update was at 11:09 ----------

Hi funksen,
Watch for your command, it will still accept the following inputs:
1 e24
abc 123
# 4  
Old 09-21-2009
yep you are right, I expected an input of one string without space

the loop is not necessary, thought he want to check three inputs
# 5  
Old 09-21-2009
Cheers for that chebarbudo, works a treat Smilie

Funksen the for loop was there to break up the input into characters and check them one by one. Sorry for the confusion but thank you anyway Smilie
# 6  
Old 09-22-2009
Hey ChrisHoogie,

Depending on the rest of your script, you can put everything in one line :
Code:
read input
egrep -q '^[0-9]{1,3}$' <<< "$input" || { echo "$(basename "$0"): Wrong input" >&2; exit 1; }
the
rest
of
your
script

# 7  
Old 09-22-2009
cheers chebarbudo Smilie learning new stuff everday, slowly becoming a script junkie

I have been doing some reading on redirection and still can not find any clear meaning of <<< Can you explain what the third < does
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #696
Difficulty: Medium
The Cathedral model, in which source code is available with each software release, but code developed between releases, is restricted to an exclusive group of software developers.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Checking number of commas in each line.

Hi All, I am checking whether each line is having "n" number of commas or nor. In case not then I need to exit the process. I tried cat "$TEMP_FILE" | while read LINE do processing_line=`expr $processing_line + 1` no_of_delimiters=`echo "$LINE" | awk -F ',' '{ print NF }'` if ... (4 Replies)
Discussion started by: Anupam_Halder
4 Replies

2. Shell Programming and Scripting

Checking variable with specific string and stripping number from it.

I am parsing a file and I get differnt results everytime. Sometimes I get 12s sometimes I get 54m and sometime 3h.. v1=12s or v1=54m or v1=3h 12s - 12 seconds 54m - 54 minutes 3h - 3 hour I have to write a script in such a way that it whenever v1 is in minutes, I should strip "m"... (14 Replies)
Discussion started by: jayeshpatel
14 Replies

3. Shell Programming and Scripting

checking a number

ok im trying to find out how many cars a user enters. Its giving me an error message of "integer expression expected" Basically if i enter any number over 0 (zero) it should continue read -p "How many cars:" carsn test $cars -ge 1 test $? -ne 0 && read -p "Invalid number.... (8 Replies)
Discussion started by: gangsta
8 Replies

4. Homework & Coursework Questions

checking for number of arguments.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Your script must check for the correct number of arguments (one argument). If somebody tries to invoke the... (1 Reply)
Discussion started by: brooksie91
1 Replies

5. UNIX for Dummies Questions & Answers

checking if parameter passed is a number

I have written a function that fills an array and another function where if a parameter is supplied it will jump to that part of the array and cat it to the screen. I need to put in some checks to make sure the parameter supplied is firstly a number and then not a number great than the length of... (2 Replies)
Discussion started by: magnia
2 Replies

6. Shell Programming and Scripting

Checking for proper number of files in dir

Using Solaris 10 and sh. I have three files. mydirs.txt /dir1/dir2/dir3 /dir4/dir5/dir6 mydirshave.txt 1 2 mydirsshouldhave.txt 2 2 For each directory listed in mydirs.txt I should have the number of files equal to mydirshouldhave.txt. But using -ls |wc -l- on the dirs I get what... (2 Replies)
Discussion started by: crowman
2 Replies

7. Shell Programming and Scripting

checking the smallest and largest number

Hi All, My script is reading a log file line by line log file is like ; 19:40:22 :INFO Total time taken to Service External Request---115ms 19:40:25 DEBUG : Batch processed libdaemon.x86_64 0-0.10-5.el5 - u 19:40:22 INFO Total time taken to Service External Request---20ms 19:40:24... (4 Replies)
Discussion started by: subin_bala
4 Replies

8. Shell Programming and Scripting

checking invoice number not correct

hello, I have the following script to check the invoice number is in order or not. However, it cannot show out the correct information. My expect output show below and I would like to only list out the NOT IN SEQUENCE inovice number (not included "ok") #!/bin/sh start=1 for file_number in... (8 Replies)
Discussion started by: happyv
8 Replies

9. Shell Programming and Scripting

checking jump sequence number (part2)

The following script have some bug...can you all help me: #!/bin/sh start=1 for file_number in `ls -1 /appl/CH_DATA/archive/list1/CACHE/CDBACKUPFILEJohn*.archived | sort | cut -c 48,49,50,51` do if ; then # this is the first pass of the loop, so we've got nothing to compare start=0... (3 Replies)
Discussion started by: happyv
3 Replies

10. UNIX for Dummies Questions & Answers

sequence number checking

Hi there, I'm wanting to produce a shell script that will check through some file names and identify a skip in sequence (four digit seq num in file name). I have played on the idea of havng a file that has a sorted list of file names which I can read line at a time and cut out the sequence... (1 Reply)
Discussion started by: nhatch
1 Replies

Featured Tech Videos