Derek Ragona wrote:
At 12:04 PM 8/18/2007, Christer Hermansson wrote:
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.
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
Thanks Derek ! Now both the example and my own code works for me. I
changed my code from "^[A-Za-z0-9_-]+$" to "\([A-Za-z0-9_-]*\)" It seems
that FreeBSD's expr want some different syntax than the webbased test
tool at http://regexlib.com/RETester.aspx
--
Christer Hermansson
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"