sh parameter substitution problem
Jonathan McKeown
jonathan+freebsd-questions at hst.org.za
Wed Feb 11 03:42:20 PST 2009
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
More information about the freebsd-questions
mailing list