Bourne variable unset outside while()
Polytropon
freebsd at edvax.de
Fri May 9 14:45:56 UTC 2014
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. ;-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list