Date: Tue, 15 Jun 2010 09:25:05 -0700 From: Chip Camden <sterling@camdensoftware.com> To: "questions@freebsd.org" <questions@freebsd.org> Subject: Re: * wildcard in.sh script Message-ID: <20100615162505.GB31149@libertas.local.camdensoftware.com> In-Reply-To: <4C174283.9090903@comclark.com> References: <4C173909.1050101@comclark.com> <4C174283.9090903@comclark.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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? -- Sterling (Chip) Camden http://camdensoftware.com | http://chipstips.com | http://chipsquips.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100615162505.GB31149>