From owner-freebsd-questions@FreeBSD.ORG Wed Jun 16 13:42:12 2010 Return-Path: Delivered-To: questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21CB61065675 for ; Wed, 16 Jun 2010 13:42:12 +0000 (UTC) (envelope-from aiza21@comclark.com) Received: from avmxsmtp3.comclark.com (avmxsmtp3.comclark.com [202.69.191.117]) by mx1.freebsd.org (Postfix) with ESMTP id AD0C48FC13 for ; Wed, 16 Jun 2010 13:42:11 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQSAMJxGEzKRa1bPGdsb2JhbAAHh2iXFQEBAQE1v12FGgSDUA X-IronPort-AV: E=Sophos;i="4.53,426,1272816000"; d="scan'208";a="4093496" Received: from unknown (HELO [10.0.10.3]) ([202.69.173.91]) by avmxsmtp3.comclark.com with ESMTP; 16 Jun 2010 21:42:08 +0800 Message-ID: <4C18D4AE.2010606@comclark.com> Date: Wed, 16 Jun 2010 21:42:06 +0800 From: Aiza User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Polytropon References: <4C173909.1050101@comclark.com> <4C174283.9090903@comclark.com> <20100615162505.GB31149@libertas.local.camdensoftware.com> <20100615194304.89613058.freebsd@edvax.de> In-Reply-To: <20100615194304.89613058.freebsd@edvax.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "questions@freebsd.org" Subject: Re: * wildcard in.sh script X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2010 13:42:12 -0000 Polytropon wrote: > On Tue, 15 Jun 2010 09:25:05 -0700, Chip Camden wrote: >> As others have mentioned, you need to quote or escape the * in the >> command line: >> >> admin "cell*" > > The problem, for explaination purposes, is that the shell you > enter the command will already expand cell* to cell_A, cell_B > and so on. This means that inside your script $1 will be assigned > the first matching entry, $2 would be the second one, $3 a third > one and so on. > > To avoid this, you need to directly communicate the * to your > script's parameter $1, which is done by escaping or quoting it. > In this case, $1 will contain a literal * inside the script. > > In most cases when scripting, it's useful not to assume such a > complicated command line processing. You better let the shell > do the expansion of *, so your script gets a lot of parameters, > one for each match, and you then continue to process them. > > Another option is to just provide a prefix pattern to your > script, and let IT then add the * to expand it internally > within the script (i. e. by the shell that processes the > script). So you won't have to give a * at the command line > of the calling dialog shell. > > > > Since I needed a wildcard character that was not already defined with special function that didn't have the be " " on the command line, I experimented some and found the = sign. It works for me. Thanks to everyone who replied.