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>