From owner-freebsd-questions@FreeBSD.ORG Wed Feb 11 11:42:20 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25EDA106564A for ; Wed, 11 Feb 2009 11:42:20 +0000 (UTC) (envelope-from jonathan+freebsd-questions@hst.org.za) Received: from hermes.hst.org.za (onix.hst.org.za [209.203.2.133]) by mx1.freebsd.org (Postfix) with ESMTP id 536CA8FC0C for ; Wed, 11 Feb 2009 11:42:18 +0000 (UTC) (envelope-from jonathan+freebsd-questions@hst.org.za) Received: from sysadmin.hst.org.za (sysadmin.int.dbn.hst.org.za [10.1.1.20]) (authenticated bits=0) by hermes.hst.org.za (8.13.8/8.13.8) with ESMTP id n1BBQFKh071132 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 11 Feb 2009 13:26:15 +0200 (SAST) (envelope-from jonathan+freebsd-questions@hst.org.za) From: Jonathan McKeown Organization: Health Systems Trust To: freebsd-questions@freebsd.org Date: Wed, 11 Feb 2009 13:42:14 +0200 User-Agent: KMail/1.9.7 References: <20090211213011.C38905@sola.nimnet.asn.au> In-Reply-To: <20090211213011.C38905@sola.nimnet.asn.au> X-Face: $@VrUx^RHy/}yu]jKf/<4T%/d|F+$j-Ol2"2J$q+%OK1]&/G_S9(=?utf-8?q?HkaQ*=60!=3FYOK=3FY!=27M=60C=0A=09aP=5C9nVPF8Q=7DCilHH8l=3B=7E!4?= =?utf-8?q?2HK6=273lg4J=7Daz?=@1Dqqh:J]M^"YPn*2IWrZON$1+G?oX3@ =?utf-8?q?k=230=0A=0954XDRg=3DYn=5FF-etwot4U=24b?=dTS{i X-Spam-Score: -4.206 () ALL_TRUSTED,AWL,BAYES_00 X-Scanned-By: MIMEDefang 2.61 on 209.203.2.133 Subject: Re: sh parameter substitution problem 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, 11 Feb 2009 11:42:20 -0000 On Wednesday 11 February 2009 12:47:17 Ian Smith wrote: > I'm getting nowhere trying to parse out IP addresses from strings of > this form in /bin/sh, which have been awk'd out of 'tail named.run': > > addr='195.68.176.4#1440:' > addr='195.68.176.4#16811:' > addr='195.68.176.4#276:' > > sh(1) in hand, I've tried: > > ip=${addr:%#*} > ip=${addr:%%#*} > ip=${addr:%[#]*} > ip=${addr:%%[#]*} > > but all of these report './testbit: 7: Syntax error: Bad substitution' Take out the : in the parameter expansion. $ addr='195.68.176.4#1440:'; ip=${addr%#*}; echo $ip 195.68.176.4 : is for supplying default values or an error for unset variables. Jonathan