Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 May 2014 10:57:05 -0400
From:      Rick Miller <vmiller@hostileadmin.com>
To:        Polytropon <freebsd@edvax.de>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>, "Ivailo A. Tanusheff" <ITanusheff@postbank.bg>
Subject:   Re: Bourne variable unset outside while()
Message-ID:  <CAHzLAVGT-a4HimY8Sy7LvZEJu-%2Bn6Es0oFziptsDGe%2BGRL1u3Q@mail.gmail.com>
In-Reply-To: <20140509164546.d10312ee.freebsd@edvax.de>
References:  <CAHzLAVFhyPtkWCj1uj0aq0AusfrWL55UUn-mkxiyzUus7x4vdA@mail.gmail.com> <1422065A4E115F409E22C1EC9EDAFBA456552E@sofdc01exc02.postbank.bg> <20140509164546.d10312ee.freebsd@edvax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, May 9, 2014 at 10:45 AM, Polytropon <freebsd@edvax.de> wrote:

> On Fri, 9 May 2014 06:42:45 +0000, Ivailo A. Tanusheff wrote:
> > Hi,
> >
> > I think you can check out this:
> > http://stackoverflow.com/questions/7482510/variable-incrementing-in-bash
> >
> > So I sugest you do the same trick or use different approach - awk or
> something like this.
>
> This actually works (and is a good idea to get rid of my suggested
> `awk ...` call per each line of input). In "here documents", variable
> expansion can be used. If the input will be coming from a file
> instead, using < /the/file can be done.
>
>         #!/bin/sh
>
>         fs="freebsd-ufs gprootfs 1G
>         freebsd-swap gpswapfs 1G
>         freebsd-ufs gpvarfs 1G"
>
>         while read -r fstype fslabel fssize; do
>                 labels="${labels} ${fslabel}"
>         done << EOF
>         "${fs}"
>         EOF
>
>         echo "labels = ${labels}"
>
> The result is:
>
>         labels =  gprootfs gpswapfs gpvarfs
>
> There's a leading space because at the first addition, ${labels}
> is empty, a space and the 1st entry are then added. The awk approach
> didn't have that "bug", erm... feature. ;-)
>

Yes, this is a more efficient approach.  Thanks for providing further input.


-- 
Take care
Rick Miller



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHzLAVGT-a4HimY8Sy7LvZEJu-%2Bn6Es0oFziptsDGe%2BGRL1u3Q>