Chip Camden wrote:
On Jun 15 2010 17:06, Aiza wrote:
Aiza wrote:
I have a directory with files in it. The first 3 letters of the file names is the group prefix. I'm trying to write a script to accept the 3 letter of the group followed by a * to mean its a prefix lookup. But when I run it I get a message "NO match" that is not issued by the script. Its like * is not allowed as input.

Looking for sample .sh code for handling this standard type of lookup or some online tutorial that has sample code for bourne shell programming.



Here is the code

  prefix_name1=$1
  prefix_name2=`echo -n "${prefix_name1}" | sed 's/*.*$//'`
  echo "prefix_name1 = ${prefix_name1}"
  echo "prefix_name2 = ${prefix_name2}"


  if [ ${prefix_name1} -nq ${prefix_name2} ]; then
  echo "prefix_name2 = ${prefix_name2}"
  fi
exerr "hard stop"


Here is the test and out put
# >admin cell*
admin: No match.


As others have mentioned, you need to quote or escape the * in the
command line:

admin "cell*"

You've also botched your regex (/*.*$/) -- it can't begin with a *.  What 
exactly
are you trying to match?

As shown in the posted test results you can see that the * is removed from the input cell* and becomes cell and then cell* is compared to cell to determine if a search by prefix command was entered on the script command line. So the regex (/*.*$/) is working as coded as long as the script command line is coded like this "cell*".
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to