At 12:04 PM 8/18/2007, Christer Hermansson wrote:
Hi.
I'm trying to use regular expressions inside a shell script (/bin/sh) on
my freebsd box and can't get it to work so I searched the web and found
http://regexlib.com/RETester.aspx
On this webpage I could test my pattern "^[A-Za-z0-9_-]+$" and everything
was fine, did exactly what I wanted to do, check that a string only
contains some combination of the characters A-Z, a-z, 0-9, hyphen - and
underscore _.
I also found some basic example at
http://www.grymoire.com/Unix/Sh.html#uh-88 :
--------8<--------8<--------8<--------8<--------8<--------
#!/bin/sh
echo "Type in a number"
read ans
number=`expr "$ans" : "([0-9]*)"`
if [ "$number" != "$ans" ]; then
echo "Not a number"
elif [ "$number" -eq 0 ]; then
echo "Nothing was typed"
else
echo "$number is a fine number"
fi
--------8<--------8<--------8<--------8<--------8<--------
The above example doesn't work on my freebsd box. Maybe I need to update
my system, sitting with 6.0R which never been updated.
Is there anyone who has some advice about how to get regular expressions
to work in FreeBSD shell script ?
--
Christer Hermansson
You have a syntax error using expr. Do a man on expr for more details but
if you change that line from:
number=`expr "$ans" : "([0-9]*)"`
to:
number=`expr "$ans" : "\([0-9]*\)"`
You will get the desired results.
Also when debugging scripts remember to add:
set -x
to your script on the second line, and see what the script lines are
actually doing.
-Derek
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"