Visit Our UNIX and Linux User Community

Top Forums Shell Programming and Scripting Is there any way to makesure that the input from the user is all numbers? Post 15148 by Jimbo on Monday 11th of February 2002 11:05:27 AM
Old 02-11-2002
This form of expr returns the number of characters in a string that match the specified pattern. In the following commands, the dot represents any single character, and the following asterisk means zero or more of that character:

expr XY : "X.*Y" (returns value of 2)
expr XabcY : "X.*Y" (returns value of 5)
expr XabcYdef : "X.*Y" (returns value of 5)

So the command:

if expr "$answer" : "[0-9]*$"

is looking for a digit, zero-or-more times, with nothing else following, because the $ means end-of-line or in this case end-of-string. And for expr, there is an implied beginning-of-line anchor.

Since you are not interested in seeing the number of characters that qualify, but only in the true/false result of the if-test, we discard the output of this command with the > /dev/null.

If the expression evaluates to one or more characters, it will return true, else will return false. So even though the asterisk allows zero-or-more occurrences in that position, a null answer evaluates to zero, thus false.

And if part of the pattern is enclosed in parentheses, if the entire expression evaluates true, instead of returning the number of characters that match the pattern, it will return the parenthesized part of that pattern. Example:

expr XabcYdef : "X\(.*\)Y"

returns "abc". That is a little hard to read because both the left and right parentheses must be preceeded with backslashes. Without the backslashes, it is easier to read:

expr XabcYdef : "X(.*)Y"

Last edited by Jimbo; 02-11-2002 at 12:11 PM..
Test Your Knowledge in Computers #725
Difficulty: Medium
Barbara Liskov developed the Liskov substitution principle, which guarantees semantic interoperability of data types in a hierarchy.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Accept user input - only numbers

I have a situation where I want the user to enter only numbers in response to a READ command. I have some validation to restrict the number to be between 1 and 12, but if the user type in some characters the script echoes some error message and goes to the next command. Below is a snippet of the... (1 Reply)
Discussion started by: pvar
1 Replies

2. UNIX for Dummies Questions & Answers

Negative Numbers for input parameters.

Hello, I have a command that I need to supply a negative number as a parameter; how do I do this? I have tried giving it with double quotes, "", but no avail. Thanks, Gussi (3 Replies)
Discussion started by: Gussifinknottle
3 Replies

3. Shell Programming and Scripting

Constructing numbers from input lines

I have a file with the information shown and I want to capture the entry having the rgdt tag and taking the value (the location of the represents the decimal point, for example 0p50 represents 0.50) I then want to divide the number at the end of each line by the value 0.50 I want to do... (7 Replies)
Discussion started by: kristinu
7 Replies

4. Shell Programming and Scripting

input of two numbers in the middle of the script

Hi, My script ask for the input of two numbers in the middle of it. I would like to know how to indicate this two numbers when I submit the script. thanks for any help, jalves (4 Replies)
Discussion started by: jalves
4 Replies

5. UNIX for Dummies Questions & Answers

Extraction of numbers from input

I have the following input: xxxx-2.7.19_WR3 I have extract the following: 2.7.19 Can anyone suggest an awk or sed command to do the above...:confused: another condition is if the input is : xxx-xxx_xxx-1.4-1_WR3.0bg.armv6jel_vfp it shud still extract : 1.4-1 whenever "-"... (12 Replies)
Discussion started by: xerox
12 Replies

6. Shell Programming and Scripting

How to get the user input recursively until the user provides valid input

Hi, echo "Enter file name of input file list along with absolute path : " read inputFileList if then for string in `cat inputFileList` do echo $string done else echo " file does not exist" fi From the above code, if the user enters a invalid file... (1 Reply)
Discussion started by: i.srini89
1 Replies

7. Shell Programming and Scripting

Script interacts with user , based on user input it operates

i have a script which takes input from user, if user gives either Y/y then it should continue, else it should quit by displaying user cancelled. #!/bin/sh echo " Enter your choice to continue y/Y OR n/N to quit " read A if then echo " user requested to continue " ##some commands... (7 Replies)
Discussion started by: only4satish
7 Replies

8. Shell Programming and Scripting

Reducing the decimal points of numbers (3d coordinates) in a file; how to input data to e.g. Python

I have a file full of coordinates of the form: 37.68899917602539 58.07500076293945 57.79100036621094 The numbers don't always have the same number of decimal points. I need to reduce the decimal points of all the numbers (there are 128 rows of 3 numbers) to 2. I have tried to do this... (2 Replies)
Discussion started by: crunchgargoyle
2 Replies

9. Shell Programming and Scripting

User input and run awk using the input

I am trying to allow a user to enter in text and then store that text in a variable $gene to run in an awk command in which those values are used to run some calculations. I am getting syntax errors however, when I try. Thank you :). The awk runs great if it is a pre-defined file that is used,... (7 Replies)
Discussion started by: cmccabe
7 Replies
ppmcolormask(1) 					      General Commands Manual						   ppmcolormask(1)

ppmcolormask - produce mask of areas of a certain color in a PPM file SYNOPSIS
ppmcolormask color [ppmfile] DESCRIPTION
Reads a PPM file as input. Produces a PBM (bitmap) file as output. The output file is the same dimensions as the input file and is black in all places where the input file is the color color, and white everywhere else. The output of ppmcolormask is useful as an alpha mask input to pnmcomp. Note that you can generate such an alpha mask automatically as you convert to PNG format with pnmtopng(1). Use its -transparent option. ppmfile is the input file. If you don't specify ppmfile, the input is from Standard Input. The output goes to Standard Output. You can specify color five ways: o An X11-style color name (e.g. black). o An X11-style hexadecimal specifier: rgb:r/g/b, where r g and b are each 1- to 4-digit hexadecimal numbers. o An X11-style decimal specifier: rgbi:r/g/b, where r g and b are floating point numbers between 0 and 1. o For backwards compatibility, an old-X11-style hexadecimal number: #rgb, #rrggbb, #rrrgggbbb, or #rrrrggggbbbb. o For backwards compatibility, a triplet of numbers separated by commas: r,g,b, where r g and b are floating point numbers between 0 and 1. (This style was added before MIT came up with the similar rgbi style.) SEE ALSO
pgmtoppm(1), pnmcomp(1), pbmmask(1), ppm(5) AUTHOR
Bryan Henderson ( 14 April 2000 ppmcolormask(1)

Featured Tech Videos

All times are GMT -4. The time now is 11:48 AM.
Unix & Linux Forums Content Copyright 1993-2020. All Rights Reserved.
Privacy Policy